Bagaimana saya bisa mengaktifkan remote permintaan di IIS Express? Scott Guthrie menulis bahwa adalah mungkin tetapi ia tidak't mengatakan bagaimana.
Ada's blog post up pada IIS situs tim sekarang yang menjelaskan bagaimana mengaktifkan koneksi remote pada IIS Express. Di sini adalah penting bagian dari posting yang dirangkum:
Pada Vista dan Win7, jalankan perintah berikut dari administratif prompt:
netsh http tambahkan urlacl url=http://vaidesg:8080/ user=semua orang
Untuk XP, pertama kali menginstal Windows XP Service Pack 2 alat-Alat Pendukung. Kemudian jalankan perintah berikut dari administrasi prompt:
httpcfg set urlacl /u http://vaidesg1:8080/ /D:(A;;GX;;;WD)
Ada tiga perubahan yang anda mungkin perlu untuk membuat.
.config
file. Biasanya:$(solutionDir)\.vs\config\applicationhost.config
%userprofile%\My Documents\IISExpress\config\applicationhost.config
Menemukan situs anda's elemen yang mengikat, dan tambahkan
<binding protocol="http" bindingInformation="*:8080:*" />
netsh http add urlacl url=http://*:8080/ user=everyone
Dimana setiap orang
adalah windows kelompok. Menggunakan tanda kutip ganda untuk kelompok dengan ruang-ruang seperti "Tout le monde".
Start / Windows Firewall with Advanced Security / Inbound Rules / Aturan Baru...
Program
%ProgramFiles%\IIS Express\iisexpress.exe
ATAU TCP Port 8080
Sekarang ketika anda mulai iisexpress.exe
anda akan melihat pesan seperti
Berhasil mendaftarkan URL "http://*:8080/" untuk "hello world" aplikasi "/"
Aku ingat berjalan ke dalam masalah yang sama ketika berusaha alur kerja ini beberapa bulan yang lalu.
Yang adalah mengapa saya menulis proxy sederhana utilitas khusus untuk skenario semacam ini: https://github.com/icflorescu/iisexpress-proxy.
Menggunakan IIS Express Proxy, itu semua menjadi sangat sederhana – tidak perlu "netsh http tambahkan urlacl url=vaidesg:8080/ user=semua orang" atau main-main dengan anda "applicationhost.config".
Hanya masalah ini di command prompt:
iisexpress-proxy 8080 3000
...dan kemudian anda dapat menunjukkan anda perangkat remote untuk http://vaidesg:3000.
Sebagian besar kali lebih sederhana LEBIH baik.
Tidak ada yang bekerja untuk saya sampai saya menemukan iisexpress-proxy.
Buka command prompt sebagai administrator, kemudian jalankan
npm install -g iisexpress-proxy
kemudian
iisexpress-proxy 51123 to 81
asumsi proyek Visual Studio anda buka di localhost:51123 dan ingin anda akses pada alamat IP eksternal x.x.x.x:81
Edit: saat ini saya menggunakan ngrok
Sumber yang baik adalah Bekerja dengan SSL pada Waktu Pengembangan lebih mudah dengan IISExpress oleh Scott Hanselman.
Apa yang anda'kembali setelah bagian Mendapatkan IIS Express untuk melayani secara eksternal melalui Port 80
Sebagai sidenote ini:
netsh http add urlacl url=http://vaidesg:8080/ user=everyone
Ini hanya akan bekerja pada versi bahasa inggris dari Windows. Jika anda menggunakan versi lokal anda harus mengganti "setiap orang" dengan sesuatu yang lain, misalnya:
Jika tidak, anda akan mendapatkan error (Membuat SDDL gagal, Error: 1332)
Jika anda're bekerja dengan Visual Studio, kemudian ikuti langkah-langkah untuk mengakses IIS-Check over IP-Adress:
ipconfig
di Windows Command Line$(SolutionDir).vs\config\applicationHost.config
<binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
dengan Alamat IP andaAku diselesaikan dengan instalasi "Conveyor dengan Keyoti" di Visual Studio Profesional 2015. Conveyor menghasilkan sebuah REMOTE address (IP) dengan port (45455) yang memungkinkan permintaan eksternal. Contoh:
Conveyor memungkinkan anda untuk menguji aplikasi web dari eksternal pada tablet dan telepon pada jaringan anda atau dari emulator Android (tanpa http://10.0.2.2:<hostport>
)
Langkah-langkah pada link berikut :
https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti
Jika anda telah mencoba Kolonel Panik's jawaban tapi doesn't bekerja di Visual Studio, coba ini:
Menambahkan yang lain <mengikat />
pada IIS Express config
<bindings>
<binding protocol="http" bindingInformation="*:8080:localhost" />
<binding protocol="http" bindingInformation="*:8080:hostname" />
</bindings>
Akhirnya, anda harus jalankan Visual Studio sebagai Admin
Ini adalah apa yang saya lakukan untuk Windows 10 dengan Visual Studio 2015 untuk memungkinkan akses remote, baik dengan http dan https:
Langkah pertama adalah untuk mengikat aplikasi anda ke alamat IP internal anda. Menjalankan cmd
-> ipconfig
untuk mendapatkan alamat. Buka file /{proyek folder}/.vs/config/applicationhost.config
dan gulir ke bawah sampai anda menemukan sesuatu seperti ini:
<site name="Project.Web" id="2">
<application path="/">
<virtualDirectory path="/" physicalPath="C:\Project\Project.Web" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:12345:localhost" />
</bindings>
</site>
Tambahkan dua binding baru di bawah binding
. Anda dapat menggunakan HTTPS dan juga jika anda suka:
<binding protocol="http" bindingInformation="*:12345:192.168.1.15" />
<binding protocol="https" bindingInformation="*:44300:192.168.1.15" />
Tambahkan aturan berikut untuk firewall anda, buka baru cmd
prompt sebagai admin dan jalankan perintah berikut:
netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=12345 profile=private remoteip=localsubnet action=allow
netsh advfirewall firewall add rule name="IISExpressWebHttps" dir=in protocol=tcp localport=44300 profile=private remoteip=localsubnet action=allow
Sekarang mulai Visual Studio sebagai Administrator
. Klik kanan web proyek-proyek proyek file dan pilih Properties
. Pergi ke Web
tab, dan klik Create Virtual Directory
. Jika Visual Studio tidak jalankan sebagai Administrator ini mungkin akan gagal. Sekarang semuanya harus bekerja.
Diterima jawaban untuk pertanyaan ini adalah panduan untuk mendapatkan IIS Express untuk bekerja dengan webmatrix. Saya menemukan buku ini lebih berguna ketika mencoba untuk mendapatkan itu untuk bekerja dengan VS 2010.
Saya hanya mengikuti langkah-langkah 3 & 4 (menjalankan IIS Express sebagai administrator) dan untuk sementara menonaktifkan firewall untuk membuatnya bekerja.
Anda dapat mencoba mengatur port forwarding alih-alih mencoba untuk memodifikasi IIS Express config, menambahkan baru HTTP.sys aturan atau menjalankan Visual Studio sebagai Admin.
Pada dasarnya anda perlu untuk maju IP:PORT
website anda berjalan di beberapa pelabuhan bebas pada mesin anda, tetapi pada adaptor jaringan eksternal, bukan localhost.
Masalahnya adalah bahwa IIS Express (setidaknya pada Windows 10) mengikat [::1]:port
yang berarti mendengarkan pada IPv6 port. Anda perlu untuk mempertimbangkan hal ini.
Berikut adalah bagaimana saya membuat ini bekerja - http://programmingflow.com/2017/02/25/iis-express-on-external-ip.html
Semoga membantu.
Saya memiliki beberapa masalah dengan menggunakan IIS Express di Win 8.1 dan permintaan eksternal.
Aku mengikuti langkah-langkah ini untuk debug permintaan eksternal:
Aku punya lokal IIS diaktifkan sehingga saya baru saja membuat sebuah menulis ulang aturan untuk debugging port... saya pikir ini lebih baik dan lebih dingin daripada metode lain karena lebih mudah untuk hapus setelah saya selesai mengembangkan... Berikut ini adalah cara menulis ulang terlihat..
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="^dev/(.*)" />
<action type="Rewrite" url="http://localhost:47039/{R:1}" />
</rule>
</rules>
</rewrite>
VS juga memungkinkan anda untuk mengembangkan menggunakan setempat IIS langsung (yang kemudian memungkinkan koneksi remote) tetapi pada gilirannya anda harus selalu menjalankannya sebagai administrator... aku nggak seperti itu.
Jika anda menjalankan Visual Studio dari Admin anda dapat menambahkan hanya
<binding protocol="http" bindingInformation="*:8080:*" />
atau
<binding protocol="https" bindingInformation="*:8443:*" />
ke
%userprofile%\My Documents\IISExpress\config\applicationhost.config
Yang paling sederhana dan paling keren cara yang saya temukan adalah untuk menggunakan (ini membutuhkan waktu 2 menit untuk setup):
Ini akan bekerja dengan apa pun yang berjalan di localhost. Hanya mendaftar, berjalan sedikit excutable dan apapun yang anda jalankan di localhost mendapat semua URL yang dapat anda akses dari mana saja.
Ini adalah yang baik untuk menunjukkan hal-hal yang anda remote rekan satu tim, tidak mengutak-atik konfigurasi IIS atau firewall. Ingin menghentikan akses hanya menghentikan eksekusi.
ngrok authtoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ngrok http -host-header=localhost 89230
dengan asumsi bahwa 89230 adalah IIS Express port
Anda juga dapat menjalankan beberapa port bahkan pada rencana gratis
Saya memecahkan masalah ini dengan menggunakan reverse proxy pendekatan.
Saya telah menginstal wamp server dan digunakan sederhana fitur reverse proxy apache web server.
Saya menambahkan port baru untuk mendengarkan Apache web server (8081). Kemudian saya menambahkan proxy konfigurasi virtualhost untuk port tersebut.
<VirtualHost *:8081>
ProxyPass / http://localhost:46935/
ProxyPassReverse / http://localhost:46935/
</VirtualHost>
Yang saya lakukan berikut ini dan mampu menghubungkan:
binding protocol="http" bindingInformation="*:8888:*"
Didefinisikan inbound rule di firewall untuk memungkinkan port tertentu untuk jenis protokol: tcp
Tambahkan perintah berikut untuk menambahkan konfigurasi jaringan untuk port anda: netsh http tambahkan urlacl url=http://*:8888/ user=semua orang