Bagaimana saya bisa mengaktifkan permintaan jarak jauh di IIS Express? Scott Guthrie menulis itu mungkin tetapi dia tidak mengatakan bagaimana.
c#
asp.net
iis-express
TedTel
sumber
sumber
Jawaban:
Ada posting blog di situs tim IIS yang sekarang menjelaskan cara mengaktifkan koneksi jarak jauh di IIS Express . Berikut adalah bagian terkait dari pos yang dirangkum:
sumber
netsh
perintah untuk mengizinkan koneksi pada nama host apa saja ?user={PARAM_USER}
akan berada dalam bahasa Anda sendiri.user=todos
sajauser=everyone
.Ada tiga perubahan yang perlu Anda lakukan.
.config
file Anda . Khas:$(solutionDir)\.vs\config\applicationhost.config
%userprofile%\My Documents\IISExpress\config\applicationhost.config
Temukan elemen pengikat situs Anda, dan tambahkan
Di mana
everyone
grup windows. Gunakan tanda kutip ganda untuk grup dengan spasi seperti "Tout le monde".Izinkan IIS Express melalui Windows firewall.
Sekarang ketika Anda mulai,
iisexpress.exe
Anda akan melihat pesan sepertisumber
users=everyone
untuknetsh
(langkah kedua) dapat menyebabkan kesalahan 1789. Solusi adalah menerjemahkaneveryone
ke nama grup yang sesuai dalam bahasa Anda.Project Url
, jika saya memasukkan tanda bintang untuk nama host itu memberikan kesalahan. Jika saya memasukkan yang lain, ia mencoba membuat direktori virtual baru. Itu tidak menautkan ke entri di application.config.bindingInformation="*:8080:hostname"
dan di langkah 2url=http://hostname:8080/
, dan di properti proyek web Visual Studio di tab Web atur Url Proyek kehttp://hostname:8080/
. Hapus*
urlacl jika Anda sudah membuatnya; itu tidak akan berfungsi jika Anda memiliki keduanya. Akhirnya, URL yang Anda buka di browser web Anda harus merujuk nama host, bukan localhost.<binding protocol="http" bindingInformation="*:8080:localhost" />
Saya ingat mengalami masalah yang sama saat mencoba alur kerja ini beberapa bulan yang lalu.
Itulah sebabnya saya menulis utilitas proxy sederhana khusus untuk skenario semacam ini: https://github.com/icflorescu/iisexpress-proxy .
Menggunakan IIS Express Proxy , semuanya menjadi sangat sederhana - tidak perlu “netsh http tambahkan urlacl url = vaidesg: 8080 / user = everyone” atau untuk mengacaukan “applicationhost.config” Anda.
Hanya mengeluarkan ini di command prompt:
iisexpress-proxy 8080 to 3000
... dan kemudian Anda dapat mengarahkan perangkat jarak jauh ke http: // vaidesg: 3000 .
Sebagian besar waktu sederhana lebih baik.
sumber
Tidak ada yang berhasil untuk saya sampai saya menemukan iisexpress-proxy .
Buka command prompt sebagai administrator, lalu jalankan
kemudian
dengan asumsi proyek Visual Studio Anda terbuka di localhost: 51123 dan Anda ingin mengakses alamat IP eksternal xxxx: 81
Sunting: Saya sedang menggunakan
ngrok
sumber
Sebagai catatan untuk ini:
Ini hanya akan berfungsi pada Windows versi bahasa Inggris. Jika Anda menggunakan versi lokal Anda harus mengganti "semua orang" dengan sesuatu yang lain, misalnya:
Kalau tidak, Anda akan mendapatkan kesalahan (Buat SDDL gagal, Kesalahan: 1332)
sumber
Sumber yang bagus adalah Bekerja dengan SSL saat Pengembangan lebih mudah dengan IISExpress oleh Scott Hanselman.
Apa yang Anda kejar adalah bagian Memperoleh IIS Express untuk dilayani secara eksternal di atas Port 80
sumber
Jika Anda bekerja dengan Visual Studio, ikuti langkah-langkah ini untuk mengakses IIS-Express melalui IP-Adress:
ipconfig
di Windows Command LinePergi ke
Temukan
Tambahkan:
<binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
dengan Alamat-IP Anda
sumber
Saya menyelesaikannya dengan pemasangan "Conveyor by Keyoti" di Visual Studio Professional 2015. Conveyor menghasilkan alamat REMOTE (IP Anda) dengan port (45455) yang memungkinkan permintaan eksternal. Contoh:
Conveyor memungkinkan Anda menguji aplikasi web dari tablet eksternal dan ponsel di jaringan Anda atau dari emulator Android (tanpa
http://10.0.2.2:<hostport>
)Langkah-langkahnya ada di tautan berikut:
https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti
sumber
Jika Anda telah mencoba jawaban Kolonel Panic tetapi tidak berhasil di Visual Studio, coba ini:
Tambahkan yang lain
<binding />
di konfigurasi IIS Express AndaAkhirnya, Anda harus menjalankan Visual Studio sebagai Admin
sumber
Apa yang membantu saya, adalah mengklik kanan ikon 'IISExpress', 'Tampilkan Semua aplikasi'. Kemudian memilih situs web dan saya melihat aplicationhost.config yang digunakannya, dan koreksi berjalan dengan sempurna.
sumber
Inilah yang saya lakukan untuk Windows 10 dengan Visual Studio 2015 untuk mengaktifkan akses jarak jauh, baik dengan http dan https:
Langkah pertama adalah mengikat aplikasi Anda ke alamat IP internal Anda. Jalankan
cmd
->ipconfig
untuk mendapatkan alamat. Buka file/{project folder}/.vs/config/applicationhost.config
dan gulir ke bawah sampai Anda menemukan sesuatu seperti ini:Tambahkan dua binding baru di bawah
bindings
. Anda dapat menggunakan HTTPS juga jika Anda suka:Tambahkan aturan berikut ke firewall Anda, buka
cmd
prompt baru sebagai admin dan jalankan perintah berikut:Sekarang jalankan Visual Studio sebagai
Administrator
. Klik kanan file proyek proyek web dan pilihProperties
. BukaWeb
tab, dan klikCreate Virtual Directory
. Jika Visual Studio tidak dijalankan sebagai Administrator, ini mungkin akan gagal. Sekarang semuanya harus bekerja.sumber
Jawaban yang diterima untuk pertanyaan ini adalah panduan untuk membuat IIS Express bekerja dengan webmatrix. Saya menemukan panduan ini lebih berguna ketika mencoba membuatnya berfungsi dengan VS 2010.
Saya baru saja mengikuti langkah 3 & 4 (menjalankan IIS Express sebagai administrator) dan harus menonaktifkan sementara firewall saya agar bisa berfungsi.
sumber
Anda dapat mencoba mengatur penerusan port alih-alih mencoba mengubah konfigurasi IIS Express Anda, menambahkan aturan HTTP.sys baru atau menjalankan Visual Studio sebagai Admin.
Pada dasarnya Anda perlu meneruskan
IP:PORT
situs web Anda berjalan ke beberapa port gratis lain di komputer Anda tetapi pada adaptor jaringan eksternal, bukan localhost.Masalahnya adalah bahwa IIS Express (setidaknya pada Windows 10) mengikat
[::1]:port
artinya mendengarkan pada port IPv6. Anda perlu mempertimbangkan ini.Inilah cara saya membuat karya ini - http://programmingflow.com/2017/02/25/iis-express-on-external-ip.html
Semoga ini bisa membantu.
sumber
Cara paling sederhana dan paling keren yang saya temukan adalah menggunakan (butuh 2 menit untuk pengaturan):
https://ngrok.com/
Ini akan bekerja dengan apa pun yang berjalan di localhost. Cukup daftar, jalankan sedikit excutable dan apa pun yang Anda jalankan di localhost mendapatkan URL publik yang dapat Anda akses dari mana saja.
Ini bagus untuk menunjukkan hal-hal kepada rekan tim jarak jauh Anda, jangan mengotak-atik pengaturan IIS atau firewall. Ingin menghentikan akses, cukup putuskan eksekusi.
dengan asumsi bahwa 89230 adalah port IIS Express Anda
Anda juga dapat menjalankan banyak port bahkan secara gratis
sumber
Saya memiliki beberapa masalah menggunakan IIS Express di Win 8.1 dan permintaan eksternal.
Saya mengikuti langkah-langkah ini untuk men-debug permintaan eksternal:
Bekerja!
sumber
Jika Anda menjalankan Visual Studio dari Admin, Anda dapat menambahkan saja
<binding protocol="http" bindingInformation="*:8080:*" />
atau
<binding protocol="https" bindingInformation="*:8443:*" />
ke
sumber
$(SolutionDir).vs\config\applicationHost.config
dan juga, saya harus membuka port (8443) aplikasi di Windows firewall.Saya telah mengaktifkan IIS lokal jadi saya baru saja membuat aturan penulisan ulang untuk port debugging saya ... Saya pikir ini lebih baik dan lebih dingin daripada metode lain karena lebih mudah untuk menghapus begitu saya selesai mengembangkan ... Berikut adalah bagaimana tampilan penulisan ulang. .
VS juga memungkinkan Anda untuk mengembangkan menggunakan IIS lokal Anda secara langsung (yang kemudian memungkinkan koneksi jarak jauh) tetapi pada gilirannya Anda harus selalu menjalankannya sebagai administrator ... Saya tidak suka itu.
sumber
Saya memecahkan masalah ini dengan menggunakan pendekatan proxy terbalik.
Saya menginstal wamp server dan menggunakan fitur proxy terbalik sederhana dari server web apache.
Saya menambahkan port baru untuk mendengarkan server web Apache (8081). Kemudian saya menambahkan konfigurasi proxy sebagai virtualhost untuk port itu.
sumber
Saya melakukan semua langkah ini dan tidak ada yang membantu saya. Dan apa yang saya butuhkan, itu hanya untuk menjalankan aplikasi saya melalui IIS Express ...
Semoga ini bisa membantu.
sumber
Saya tidak dapat melayani permintaan iis kepada pengguna lain di jaringan lokal saya, yang harus saya lakukan (selain yang di atas) adalah me-restart router BT Hub saya.
sumber
Ini luar biasa mengagumkan dan bahkan mencakup HTTPS dengan nama domain cantik:
http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx
Bagian yang benar-benar luar biasa yang tidak dapat saya temukan di tempat lain di SO kalau-kalau tautan di atas hilang:
Utilitas di atas akan mendaftarkan sertifikat SSL untuk Anda! Jika Anda menggunakan opsi -UseSelfSigned, itu sangat mudah.
Jika Anda ingin melakukan hal-hal dengan cara yang sulit, bagian yang tidak jelas adalah Anda perlu memberi tahu HTTP.SYS sertifikat apa yang digunakan, seperti ini:
Certhash adalah "Thumbprint" yang bisa Anda dapatkan dari properti sertifikat di MMC.
sumber
Saya melakukan yang berikut dan dapat terhubung:
1) mengubah IIS express config binding dari host lokal ke '*'
binding protocol = "http" bindingInformation = "*: 8888: *"
2) Aturan inbound yang ditentukan pada firewall untuk memungkinkan port tertentu untuk jenis protokol: tcp
3) Tambahkan perintah berikut untuk menambahkan konfigurasi jaringan untuk port Anda: http netsh tambahkan urlacl url = http: // *: 8888 / pengguna = semua orang
sumber
Cara lain untuk mengakses permintaan eksternal adalah dengan menggunakan IIS, bukan IIS Express. Di studio visual saya, saya bisa beralih dengan mudah.
sumber
[dialog properti proyek]
Untuk pengembangan menggunakan VisualStudio 2017 dan proyek-API NetCore:
1) Dalam Cmd-Box: ipconfig / all untuk menentukan alamat IP
2a) Masukkan alamat IP yang diambil di Properti proyek-> Tab Debug
2b) Pilih Port dan lampirkan itu ke alamat IP dari langkah 2a.
3) Tambahkan aturan perbolehkan di firewall untuk mengizinkan trafik TCP yang masuk pada Port yang dipilih (firewall saya dipicu dengan dialog: "Blokir atau tambahkan aturan ke firewall"). Tambah akan dalam hal melakukan trik.
Kerugian dari solusi di atas:
1) Jika Anda menggunakan alamat IP dinamis, Anda harus mengulangi langkah-langkah di atas jika IP-address lain telah ditetapkan.
2) Server Anda sekarang memiliki Port terbuka yang mungkin Anda lupakan, tetapi port terbuka ini tetap menjadi undangan untuk tamu yang tidak diinginkan.
sumber