Apakah Anda memeriksa pengikatannya adalah IIS? (inetmgr.exe) Mungkin tidak terdaftar untuk menerima semua nama host di 8080.
Misalnya, jika Anda mengaturnya untuk mysite.com:8080 dan menekannya di localhost: 8080, IIS akan mendapatkan permintaan tersebut tetapi tidak memiliki nama host yang mengikat untuk dicocokkan sehingga ditolak.
Di luar itu, Anda harus memeriksa log IIS (C: \ inetpub \ logs \ wmsvc #) di server dan melihat apakah Anda melihat permintaan Anda. Kemudian Anda akan tahu apakah itu masalah pada klien Anda atau pada server itu sendiri.
FWIW, jika Anda hanya ingin mengizinkan permintaan diarahkan ke nama host / ip apa pun, Anda dapat mengatur pengikatan seperti ini:
Saya menggunakan pengikatan ini sehingga saya dapat memuat VM dengan IE6 dan kemudian men-debug aplikasi saya.
EDIT: Saat menggunakan IIS Express untuk men-debug, lokasi default untuk file konfigurasi opsi ini adalah
sumber
Halaman ini oleh Microsoft menjelaskan cara mengatur akses ke IIS Server Express dari komputer lain di jaringan lokal.
Pendeknya:
1) dari prompt perintah dengan hak istimewa admin:
2) Di Windows Firewall dengan Keamanan Lanjutan, buat aturan masuk baru untuk port 8181 untuk mengizinkan koneksi eksternal
3) Di applicationhost.config, di node untuk proyek Anda, tambahkan:
<binding protocol="http" bindingInformation="*:8181:[your ip address]" />
JANGAN menambahkan (seperti yang disarankan dalam jawaban lain):
<binding protocol="http" bindingInformation="*:8181:*" />
Pengikatan wildcard di atas memutuskan akses saya
http://192.168.1.6:8181/
sumber
netsh http delete urlacl url=http://[your ip address]:8181/
Jadi, saya menyelesaikan ini dengan membuka situs web saya di IIS Manager dan mengubah nama host di pengikatan situs dari localhost menjadi *. Mulai bekerja segera.
sumber
Untuk
Visual Studio 2017
danVisual Studio 2015
,IIS Express
pengaturan disimpan di.vs
direktori tersembunyi dan jalurnya seperti ini.vs\config\applicationhost.config
, tambahkan pengikatan seperti di bawah ini akan berfungsiSintaks: https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.administration.binding.bindinginformation?view=iis-dotnet
sumber
<bindings> <binding protocol="http" bindingInformation="localhost:8802:*" /> <binding protocol="http" bindingInformation="127.0.0.1:8802:*"/> </bindings>
Jangan lupa untuk mengikat ke alamat IPv6 juga! Saya mencoba menambahkan situs di 127.0.0.1 menggunakan localhost dan mendapat permintaan buruk / kesalahan nama host tidak valid. Ketika saya melakukan ping ke localhost, itu diselesaikan ke :: 1 karena IPv6 diaktifkan jadi saya hanya perlu menambahkan pengikatan tambahan untuk memperbaiki masalah.
sumber
Ini memecahkan masalah saya (maaf untuk bahasa Inggris saya yang buruk):
buka cmd sebagai administrator dan jalankan perintah (Tanpa tanda kurung siku):
netsh http add urlacl url=http://[ip adress]:[port]/ user=everyone
di dalam
documents/iisexpress/config/applicationhost.config
dan di folder proyek root Anda di folder (tersembunyi):.vs/config/applicationhost.config
Anda perlu menambahkan baris ke tag "situs":<binding protocol="http" bindingInformation="*:8080:192.xxx.xxx.xxx" />
buka "internet information services (iis) manager"
(untuk menemukannya: dalam pencarian di taskbar tulis "Turn Window features on or off" dan buka hasilnya lalu centang kotak "internet information service" dan instal itu):
buka "Windows Firewall With Advanced Security",
selesai.
sumber
Saya tidak yakin apakah ini masalah Anda, tetapi untuk siapa saja yang mencoba mengakses aplikasi webnya dari komputernya dan mengalami masalah ini:
Pastikan Anda terhubung ke
127.0.0.1
(aliaslocalhost
) dan bukan ke alamat IP eksternal Anda.URL Anda harus seperti
http://localhost:8181/
atauhttp://127.0.0.1:8181
dan tidakhttp://YourExternalIPaddress:8181/
.Informasi tambahan:
Alasan ini berhasil adalah karena firewall Anda mungkin memblokir permintaan Anda sendiri. Ini bisa berupa firewall di OS Anda dan bisa menjadi (biasa) router Anda.
Saat Anda terhubung ke alamat IP eksternal, Anda terhubung dari internet, seolah-olah Anda adalah orang asing (atau peretas).
Namun ketika Anda terhubung ke localhost Anda, Anda terhubung secara lokal sebagai diri Anda sendiri dan blok tersebut jelas tidak diperlukan (& dihindari sama sekali).
sumber
localhost
, ini yang dimaksud dengan (127.0.0.1
). Yang saya katakan adalah terhubung ke itu dan bukan ke IP Anda yang terlihat secara eksternal. Tidak ada ketergantungan pada localhost, itu hanya digunakan sebagai sinonim. Saya akan mengedit jawaban saya untuk membuatnya lebih jelas.Anda dapat menggunakan alat CMD Visual Studio 2005/2008/2010. Jalankan sebagai admin, dan tulis
Akhirnya saya dapat menjalankan aplikasi saya dengan sukses.
sumber
Jika bekerja di server lokal atau Anda belum memiliki nama domain, hapus kolom "Host Name:".
sumber
Periksa file host lokal Anda (misalnya C: \ Windows \ System32 \ drivers \ etc \ hosts). Dalam kasus saya, saya sebelumnya menggunakan ini untuk mengarahkan URL ke kotak dev dan kemudian melupakannya. Ketika saya kemudian menggunakan kembali URL yang sama, saya terus mendapatkan Permintaan Buruk (Nama Host Tidak Valid) karena lalu lintas menuju ke server yang salah.
sumber
Saya mendapatkan kesalahan ini ketika mencoba memanggil layanan web menggunakan "localhost". Saya memperbaikinya dengan menggunakan IP sebenarnya (192.168 ...)
sumber
Saya melihat kesalahan yang sama setelah menggunakan msdeploy untuk menyalin aplikasi ke server baru. Ternyata bindings tersebut masih menggunakan alamat IP dari server sebelumnya. Jadi, periksa kembali alamat IP di binding IIS. (Tampak jelas setelah fakta, tetapi tidak segera terpikir oleh saya untuk memeriksanya).
sumber
Periksa kembali URL yang Anda berikan. Saya melihat kesalahan ini ketika saya melewatkan awalan rute yang ditentukan di ASP.NET sehingga tidak tahu ke mana harus mengarahkan permintaan.
sumber
Pastikan IIS mendengarkan port Anda.
Dalam kasus saya, inilah masalahnya. Jadi saya harus mengubah port saya ke yang lain seperti 8083 dan itu menyelesaikan masalah ini.
sumber