Bagaimana cara mengaktifkan permintaan eksternal di IIS Express?

466

Bagaimana saya bisa mengaktifkan permintaan jarak jauh di IIS Express? Scott Guthrie menulis itu mungkin tetapi dia tidak mengatakan bagaimana.

TedTel
sumber
25
Ada ekstensi VS gratis untuk ini yang kami tulis di visualstudiogallery.msdn.microsoft.com/...
Jim W mengatakan mengembalikan Monica
@ Jim Jim, apakah Anda pembuat plugin? Tolong bisakah Anda menjelaskan bagaimana keajaiban rekayasa perangkat lunak ini bekerja?
Ian Warburton
@IanWarburton terima kasih telah menyebutnya keajaiban! Ini adalah server proxy terbalik.
Jim W mengatakan mengembalikan Monica
@ Jim Terima kasih telah membuatnya.
Ian Warburton
@ Jim Saya mencoba plugin Anda dan melakukan semua seperti yang Anda katakan di tutorial. Tapi saya masih belum bisa mengakses localhost saya
mark_spencer

Jawaban:

403

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:

Pada Vista dan Win7, jalankan perintah berikut dari prompt administratif:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

Untuk XP, instal terlebih dahulu Alat Dukungan Windows XP Paket Layanan 2. Kemudian jalankan perintah berikut dari prompt administratif:

httpcfg set urlacl /u http://vaidesg1:8080/ /a D:(A;;GX;;;WD)

Damian Edwards
sumber
121
Dalam hal Kesalahan 503, lihat ini: stackoverflow.com/questions/5442551/...
deerchao
5
Apakah ada netshperintah untuk mengizinkan koneksi pada nama host apa saja ?
Kolonel Panic
33
Sekadar catatan, jika Anda memiliki mesin Windows dalam bahasa non Inggris, parameter user={PARAM_USER}akan berada dalam bahasa Anda sendiri.
GoRoS
7
Menggunakan wildcard dalam parameter-url (mis. Url = http: // *: 8080 /) akan membuat koneksi berfungsi untuk nama host dan alamat IP komputer.
Anders
2
Jika perintah gagal (mungkin kesalahan 1789) memperhitungkan bahwa perintah mengharapkan untuk pengguna dalam bahasa PC Anda. Jadi, jika PC Anda dalam bahasa Portugis misalnya, gunakan user=todossaja user=everyone.
Vitor Canova
350

Ada tiga perubahan yang perlu Anda lakukan.

  1. Beri tahu IIS Express sendiri untuk mengikat ke semua alamat ip dan nama host. Dalam .configfile Anda . Khas:
    • VS 2015: $(solutionDir)\.vs\config\applicationhost.config
    • <VS 2015: %userprofile%\My Documents\IISExpress\config\applicationhost.config

Temukan elemen pengikat situs Anda, dan tambahkan

    <binding protocol="http" bindingInformation="*:8080:*" />
  1. Atur bit Windows yang disebut 'http.sys'. Sebagai administrator, jalankan perintah:
    netsh http add urlacl url=http://*:8080/ user=everyone

Di mana everyonegrup windows. Gunakan tanda kutip ganda untuk grup dengan spasi seperti "Tout le monde".

  1. Izinkan IIS Express melalui Windows firewall.

    Mulai / Windows Firewall dengan Keamanan Tingkat Lanjut / Aturan Masuk / Aturan Baru ...

    Program %ProgramFiles%\IIS Express\iisexpress.exe
    ATAU Port 8080 TCP

Sekarang ketika Anda mulai, iisexpress.exeAnda akan melihat pesan seperti

URL yang berhasil terdaftar "http: // *: 8080 /" untuk situs "hello world" application "/"

Kolonel Panic
sumber
22
NB Jika Anda menjalankan versi Windows yang dilokalkan, parameter users=everyoneuntuk netsh(langkah kedua) dapat menyebabkan kesalahan 1789. Solusi adalah menerjemahkan everyoneke nama grup yang sesuai dalam bahasa Anda.
mflodin
5
Bagaimana Anda mendapatkan proyek Visual Studio untuk menerima ikatan itu? Di properti proyek, tempat Anda menentukan 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.
Trevor Elliott
20
Untuk membuatnya berfungsi di Visual Studio, Anda harus menggunakan nama host komputer Anda di langkah 1 bindingInformation="*:8080:hostname"dan di langkah 2 url=http://hostname:8080/, dan di properti proyek web Visual Studio di tab Web atur Url Proyek ke http://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.
Joe Daley
5
Saya harus memiliki baris localhost di elemen binding juga, kalau tidak visual studio 2013 mencoba membuat entri situs duplikat. misal:<binding protocol="http" bindingInformation="*:8080:localhost" />
kristianp
3
Saya juga perlu menjalankan Visual Studio sebagai administrator, tetapi jawaban ini adalah yang paling menyeluruh.
dlsso
127

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.

Ionut-Cristian Florescu
sumber
3
Terima kasih atas solusi hebatnya!
Musim Panas-Waktu
1
Dan saya dapat menambahkan bahwa solusi Node.js seperti ini adalah satu-satunya yang bekerja dengan andal atas Azure, karena Azure membangun otomatis-menghasilkan file applicationhost.config dan menghapus perubahan yang mengikat Anda.
TheHansinator
1
Saya sudah mulai menggunakan IIS Express Proxy di Mac saya bersama ngrok setelah ngrok tidak berfungsi seperti yang diharapkan (karena saya belum melakukan manipulasi konfigurasi IIS Express yang diperlukan). Sangat berguna! Terima kasih.
codingoutloud
1
Sejauh ini, ini adalah solusi termudah. Saya lebih suka tidak main-main dengan applicationhost.config jika saya tidak perlu.
skalpin
4
Solusi yang sangat baik! Sekarang untuk kembali dan memperbaiki kekacauan yang telah saya buat dari IIS Express saya.
Mitch Stewart
123

Tidak ada yang berhasil untuk saya sampai saya menemukan iisexpress-proxy .

Buka command prompt sebagai administrator, lalu jalankan

npm install -g iisexpress-proxy

kemudian

iisexpress-proxy 51123 to 81

dengan asumsi proyek Visual Studio Anda terbuka di localhost: 51123 dan Anda ingin mengakses alamat IP eksternal xxxx: 81

Sunting: Saya sedang menggunakan ngrok

Toolkit
sumber
7
solusi tanpa rasa sakit
bahadir
4
Solusi termudah yang bisa saya temukan. Seharusnya mungkin mengganti nama paket menjadi sesuatu seperti web-proxy karena Anda dapat menggunakannya untuk lebih dari penerusan iisexpress :)
Mario Tacke
8
@xgp - Hai, saya penulis iisexpress-proxy :-) Sudahkah Anda berhasil membuatnya pada akhirnya? Anda harus menutup & membuka kembali prompt perintah, atau dalam kasus yang jarang terjadi, restart os. Berikan saya satu baris di halaman proyek ( github.com/icflorescu/iisexpress-proxy ) jika Anda memiliki pertanyaan lebih lanjut dan saya akan mencoba membantu jika saya punya waktu.
Ionut-Cristian Florescu
1
Terima kasih semua untuk menggunakannya dan atas kata-kata baik Anda :-). @MarioTacke - ya, saya tahu, tetapi lebih banyak orang dapat menemukannya hanya dengan google-ing jika itu disebut iisexpress-proxy :-)
Ionut-Cristian Florescu
1
Btw, ini tidak bekerja dengan otentikasi Windows.
Tom
35

Sebagai catatan untuk ini:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

Ini hanya akan berfungsi pada Windows versi bahasa Inggris. Jika Anda menggunakan versi lokal Anda harus mengganti "semua orang" dengan sesuatu yang lain, misalnya:

  • "Iedereen" saat menggunakan versi Belanda
  • "Jeder" saat menggunakan versi Jerman
  • "Mindenki" saat menggunakan versi Hongaria

Kalau tidak, Anda akan mendapatkan kesalahan (Buat SDDL gagal, Kesalahan: 1332)

semilir
sumber
33

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

Luke Sampson
sumber
Posting blog ini merekomendasikan mengisolasi port 80 ke "IISExpressWeb.exe". Versi IIS Express saat ini tidak memiliki exe dari nama ini - hanya ada IISExpress.exe dan IISExpressTray.exe. Mengisolasi koneksi ke salah satu mencegah koneksi dari luar; menghilangkan pembatasan proses memungkinkan koneksi masuk. Apa yang tepat untuk menargetkan exe?
Chris Moschini
33

Jika Anda bekerja dengan Visual Studio, ikuti langkah-langkah ini untuk mengakses IIS-Express melalui IP-Adress:

  1. Dapatkan IP-Adress host Anda: ipconfigdi Windows Command Line
  2. Pergi ke

    $(SolutionDir)\.vs\config\applicationHost.config
  3. Temukan

    <site name="WebApplication3" id="2">
       <application path="/" applicationPool="Clr4IntegratedAppPool">
          <virtualDirectory path="/" physicalPath="C:\Users\user.name\Source\Repos\protoype-one\WebApplication3" />
       </application>
       <bindings>
         <binding protocol="http" bindingInformation="*:62549:localhost" />
       </bindings>
    </site>
  4. Tambahkan: <binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
    dengan Alamat-IP Anda

  5. Jalankan Visual Studio Anda dengan hak Administrator dan semuanya akan berfungsi
  6. Mungkin mencari beberapa masalah firewall jika Anda mencoba terhubung dari jarak jauh
Daniel Eisenreich
sumber
20

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:

masukkan deskripsi gambar di sini

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

Ronny Morán
sumber
@kilianeller silakan ikuti tautan dalam jawaban dan ajukan pertanyaan di sana, kami dapat membantu Anda.
Jim W mengatakan mengembalikan Monica
Workst !!, saya membuktikan semua solusi lain (ubah applicationhost.config, netsh, IPv6 adress ..) dan tidak ada, tetapi menginstal ini akhirnya berhasil, satu-satunya masalah kecil adalah salah arah alamat IP, tetapi bukan masalah serius.
Ion
Sangat mudah dipasang. Pastikan Anda menambahkan sertifikat di browser jarak jauh seperti yang diperintahkan pada halaman ekstensi.
Andres
Aku tidak percaya, itu berhasil !!! BEGITU SEDERHANA, BEGITU SANGAT !!! Saya menghabiskan 5 jam terakhir hanya untuk mencari solusi kosong dan akhirnya saya menemukan ini!
Ziggy192
10

Jika Anda telah mencoba jawaban Kolonel Panic tetapi tidak berhasil di Visual Studio, coba ini:

Tambahkan yang lain <binding />di konfigurasi IIS Express Anda

<bindings>
    <binding protocol="http" bindingInformation="*:8080:localhost" />
    <binding protocol="http" bindingInformation="*:8080:hostname" />
</bindings>

Akhirnya, Anda harus menjalankan Visual Studio sebagai Admin

Bruce
sumber
Sayangnya, itu sepertinya tidak berfungsi untuk saya .. Saya masih mendapatkan koneksi ditolak ketika saya mencoba mengakses ip lokal saya pada port 8080
Thomas Teilmann
@ThomasTeilmann, di Visual Studio, saya harus membuka properti aplikasi web, dan di bawah tab Web, ubah "Project Url" untuk menggunakan nama host alternatif alih-alih localhost.
Sam
@ThomasTeilmann, Oh, dan saya pikir Anda perlu menjelajahinya dengan nama host daripada IP.
Sam
Saya mencoba keduanya juga, sebenarnya, dan itu tidak berhasil untuk contoh cloud: / Terima kasih
Thomas Teilmann
Ini adalah jawaban untuk saya (yaitu menjalankan VS sebagai admin) - terima kasih @Bruce. Selain itu saya juga harus memperbaiki pengaturan firewall saya secara manual. Dalam kasus saya (yaitu pengujian bahwa iphone saya dapat menelusuri mesin dev saya) membuka port 8080 pada firewall tidak berfungsi (ya?) Tetapi membuka akses dengan ip (yaitu Lingkup> IP Lokal = 10.0.0.0/24 = rumah saya jaringan) melakukan trik.
Ilan
9

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.

Konfigurasi IISExpress

Emmanuel
sumber
2
Jawaban ini mengarahkan saya ke solusi lain, mengedit applicationhost.config untuk menerima : 55665: alih-alih *: 55665: localhost
Deko
Terima kasih @Deko - komentar Anda, ditambah dengan perintah netsh yang disebutkan dalam beberapa balasan lain, membuatnya bekerja untuk saya.
Marcel Popescu
8

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-> ipconfiguntuk mendapatkan alamat. Buka file /{project folder}/.vs/config/applicationhost.configdan 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 bindings. Anda dapat menggunakan HTTPS 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 ke firewall Anda, buka cmdprompt baru 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 jalankan Visual Studio sebagai Administrator. Klik kanan file proyek proyek web dan pilih Properties. Buka Webtab, dan klik Create Virtual Directory. Jika Visual Studio tidak dijalankan sebagai Administrator, ini mungkin akan gagal. Sekarang semuanya harus bekerja.

masukkan deskripsi gambar di sini

Ogglas
sumber
Bekerja untukku! :) Ada juga pos yang bagus di sini: blog.kloud.com.au/2017/02/27/…
Leniel Maccaferri
Saya mencoba yang lain termasuk ngrok tetapi tidak berhasil. Ini berhasil pada percobaan pertama.
kooldave98
5

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.

Chad
sumber
Instruksi yang Anda tautkan kehilangan kemampuan untuk melakukan debug dari Visual Studio, yang setidaknya dalam pandangan saya menjadikannya tidak ada gunanya - menggunakan IIS atau server jauh lainnya akan sama baiknya atau lebih baik (karena Anda setidaknya dapat mengatur debugging jarak jauh pada IIS). Jika IIS Express tidak memerlukan hak admin untuk berjalan tanpa localhost, ini hanya akan berfungsi. Sangat menyebalkan.
Chris Moschini
Ini persis apa yang saya cari - terima kasih! Saya menggunakan IIS Express dengan Visual Studio 2010 dan akan menguji aplikasi ASP.NET MVC3 di LAN saya, dan ini yang saya butuhkan agar bisa berfungsi :)
Lasse Christiansen
5

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:PORTsitus 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]:portartinya 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.

srmrco
sumber
Saya menjalankan Windows 10 dan mengikat localhost ke IPv6 adalah kuncinya. Terima kasih!
TomaszGuzialek
Komputer yang saya coba konfigurasi memiliki alamat lokal lain. Itu bernama "local-dev". Saya baru saja mengikat untuk menambahkan v4tov6 listenport = 3000 connectaddress = local-dev connectport = 60000 untuk membuatnya bekerja. Pos yang bagus, terima kasih!
Anika
4

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.

ngrok authtoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ngrok http -host-header=localhost 89230

dengan asumsi bahwa 89230 adalah port IIS Express Anda

Anda juga dapat menjalankan banyak port bahkan secara gratis

Artur Kędzior
sumber
1
Siapa yang akan berpikir saya harus membaca banyak tanggapan sampai saya mendapatkan solusi ...
alexkovelsky
3

Saya memiliki beberapa masalah menggunakan IIS Express di Win 8.1 dan permintaan eksternal.

Saya mengikuti langkah-langkah ini untuk men-debug permintaan eksternal:

  1. Instal IIS
  2. Konfigurasikan Visual Studio untuk menggunakan IIS lokal (properti Halaman di Proyek Web Anda)
  3. Buat AppPool eksklusif di IIS untuk bekerja dengan aplikasi saya
  4. Dalam Proyek saya, saya menggunakan Oracle Client dan harus 32 bit (64 bit tidak bekerja dengan Visual Studio) maka saya perlu mengizinkan 32 bit di Pool Aplikasi
  5. Konfigurasikan firewall Windows untuk mengizinkan permintaan di port 80 (aturan masuk)

Bekerja!

Robson Douglas
sumber
2

Jika Anda menjalankan Visual Studio dari Admin, Anda dapat menambahkan saja

<binding protocol="http" bindingInformation="*:8080:*" />

atau

<binding protocol="https" bindingInformation="*:8443:*" />

ke

%userprofile%\My Documents\IISExpress\config\applicationhost.config
Andrii
sumber
1
Saya menerapkan konfigurasi ini ke $(SolutionDir).vs\config\applicationHost.configdan juga, saya harus membuka port (8443) aplikasi di Windows firewall.
Tonatio
2

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. .

<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 IIS lokal Anda secara langsung (yang kemudian memungkinkan koneksi jarak jauh) tetapi pada gilirannya Anda harus selalu menjalankannya sebagai administrator ... Saya tidak suka itu.

konzo
sumber
Ini adalah solusi favorit saya juga, terima kasih :) Saya hanya harus mengaktifkan Reverse Proxy untuk IIS saya terlebih dahulu, kemudian tambahkan aturan ini ke web.config saya.
Mahdi Ghiasi
1

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.

<VirtualHost *:8081>
ProxyPass / http://localhost:46935/
ProxyPassReverse / http://localhost:46935/
</VirtualHost>
mustafacanturk
sumber
1

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 ...

masukkan deskripsi gambar di sini

Semoga ini bisa membantu.

Maksym Labutin
sumber
0

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.

Terry Kernan
sumber
0

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:

> C:\Program Files (x86)\IIS Express>IisExpressAdminCmd.exe Usage:
> iisexpressadmincmd.exe <command> <parameters> Supported commands:
>       setupFriendlyHostnameUrl -url:<url>
>       deleteFriendlyHostnameUrl -url:<url>
>       setupUrl -url:<url>
>       deleteUrl -url:<url>
>       setupSslUrl -url:<url> -CertHash:<value>
>       setupSslUrl -url:<url> -UseSelfSigned
>       deleteSslUrl -url:<url>
> 
> Examples: 1) Configure "http.sys" and "hosts" file for friendly
> hostname "contoso": iisexpressadmincmd setupFriendlyHostnameUrl
> -url:http://contoso:80/ 2) Remove "http.sys" configuration and "hosts" file entry for the friendly  hostname "contoso": iisexpressadmincmd
> deleteFriendlyHostnameUrl -url:http://contoso:80/

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:

netsh http add sslcert ipport=0.0.0.0:443 appid={214124cd-d05b-4309-9af9-9caa44b2b74a} certhash=YOURCERTHASHHERE

Certhash adalah "Thumbprint" yang bisa Anda dapatkan dari properti sertifikat di MMC.

Eselk
sumber
0

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

dhakalan
sumber
Karena Anda datang ke pertanyaan ini 6 tahun setelah itu ditanyakan, dan sudah ada 12 jawaban lain, akan lebih baik jika Anda mengedit ed jawaban Anda untuk menjelaskan bagaimana jawaban Anda bekerja lebih baik daripada 12 lainnya (atau setidaknya bagaimana itu berbeda).
Monyet
0

Cara lain untuk mengakses permintaan eksternal adalah dengan menggunakan IIS, bukan IIS Express. Di studio visual saya, saya bisa beralih dengan mudah.

masukkan deskripsi gambar di sini

PJ3
sumber
Saya menggunakan VS2019.
PJ3
-1

[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.

Paul Franke
sumber