Kiedy próbuję uruchomić moją aplikację internetową na porcie 8080, pojawia się następujący błąd
Złe żądanie - nieprawidłowa
nazwa hosta Błąd HTTP 400. Żądana nazwa hosta jest nieprawidłowa.
Nie wiem nawet, od czego zacząć diagnozowanie tego problemu
FWIW, jeśli chcesz po prostu zezwolić na żądania kierowane do dowolnej nazwy hosta / adresu IP, możesz ustawić swoje powiązanie w następujący sposób:
Używam tego powiązania, aby móc załadować maszynę wirtualną za pomocą IE6, a następnie debugować moją aplikację.
EDYCJA: Podczas korzystania z usług IIS Express do debugowania domyślną lokalizacją pliku konfiguracyjnego tej opcji jest
źródło
Na tej stronie firmy Microsoft opisano, jak skonfigurować dostęp do IIS Server Express z innych komputerów w sieci lokalnej.
W skrócie:
1) z wiersza poleceń z uprawnieniami administratora:
2) W Zaporze systemu Windows z zabezpieczeniami zaawansowanymi utwórz nową regułę ruchu przychodzącego dla portu 8181, aby zezwolić na połączenia zewnętrzne
3) W pliku applicationhost.config w węźle projektu dodaj:
<binding protocol="http" bindingInformation="*:8181:[your ip address]" />
NIE dodawaj (jak zasugerowano w innej odpowiedzi):
<binding protocol="http" bindingInformation="*:8181:*" />
Powyższe powiązanie z symbolem wieloznacznym zepsuło mi dostęp
http://192.168.1.6:8181/
źródło
netsh http delete urlacl url=http://[your ip address]:8181/
Tak więc rozwiązałem ten problem, przechodząc do mojej witryny sieci Web w Menedżerze usług IIS i zmieniając nazwę hosta w powiązaniach witryn z localhost na *. Rozpoczął pracę natychmiast.
źródło
Dla
Visual Studio 2017
iVisual Studio 2015
,IIS Express
ustawienia są przechowywane w ukrytym.vs
katalogu i ścieżka jest coś takiego.vs\config\applicationhost.config
, jak poniżej dodać wiążące będą praceSkładnia: https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.administration.binding.bindinginformation?view=iis-dotnet
źródło
<bindings> <binding protocol="http" bindingInformation="localhost:8802:*" /> <binding protocol="http" bindingInformation="127.0.0.1:8802:*"/> </bindings>
Nie zapomnij również o powiązaniu z adresem IPv6! Próbowałem dodać witrynę na 127.0.0.1 przy użyciu hosta lokalnego i otrzymałem błędne żądanie / nieprawidłową nazwę hosta. Kiedy pingowałem localhost, problem rozwiązał się na :: 1, ponieważ IPv6 był włączony, więc musiałem tylko dodać dodatkowe powiązanie, aby naprawić problem.
źródło
To rozwiązało mój problem (przepraszam za mój zły angielski):
otwórz cmd jako administrator i uruchom polecenie (bez nawiasów kwadratowych):
netsh http add urlacl url=http://[ip adress]:[port]/ user=everyone
w
documents/iisexpress/config/applicationhost.config
i w głównym folderze projektu w (ukrytym) folderze:.vs/config/applicationhost.config
musisz dodać wiersz do tagu „witryna”:<binding protocol="http" bindingInformation="*:8080:192.xxx.xxx.xxx" />
otwórz „menedżera internetowych usług informacyjnych (iis)”
(aby go znaleźć: w wyszukiwarce na pasku zadań wpisz „Włącz lub wyłącz funkcje okna” i otwórz wynik, a następnie zaznacz pole wyboru „usługa informacji internetowej” i zainstaluj ją):
otwórz "Zapora systemu Windows z zabezpieczeniami zaawansowanymi",
Gotowe.
źródło
Nie jestem pewien, czy to był twój problem, ale dla każdego, kto próbuje uzyskać dostęp do swojej aplikacji internetowej ze swojego komputera i ma ten problem:
Upewnij się, że łączysz się z
127.0.0.1
(inaczejlocalhost
), a nie z zewnętrznym adresem IP.Twój adres URL powinien być coś podobnego
http://localhost:8181/
albohttp://127.0.0.1:8181
i niehttp://YourExternalIPaddress:8181/
.Dodatkowe informacje:
Powodem tego jest to, że Twoja zapora sieciowa może blokować Twoje własne żądanie. Może to być zapora sieciowa w twoim systemie operacyjnym i może to być (zwykle) twój router.
Kiedy łączysz się ze swoim zewnętrznym adresem IP, łączysz się z Tobą przez Internet, tak jakbyś był nieznajomym (lub hakerem).
Jednak kiedy łączysz się ze swoim lokalnym hostem, łączysz się lokalnie jako Ty i blok oczywiście nie jest potrzebny (i całkowicie go unikasz).
źródło
localhost
, że to się odnosi do (127.0.0.1
). Mówię tylko, żeby połączyć się z tym, a nie z zewnętrznym widocznym adresem IP. Nie ma polegania na hoście lokalnym, jest on używany tylko jako synonim. Zmienię odpowiedź, aby była jaśniejsza.Można użyć narzędzia CMD programu Visual Studio 2005/2008/2010. Uruchom go jako administrator i napisz
Nareszcie mogę pomyślnie uruchomić moją aplikację.
źródło
Jeśli pracujesz na serwerze lokalnym lub nie masz nazwy domeny, usuń pole „Host Name:”.
źródło
Sprawdź lokalny plik hostów (na przykład C: \ Windows \ System32 \ drivers \ etc \ hosts). W moim przypadku wcześniej użyłem tego do wskazania adresu URL do skrzynki deweloperskiej, a następnie zapomniałem o tym. Kiedy ponownie użyłem tego samego adresu URL, otrzymywałem złe żądanie (nieprawidłowa nazwa hosta), ponieważ ruch kierował się na niewłaściwy serwer.
źródło
Wystąpił ten błąd, gdy próbowałem wywołać usługę sieciową przy użyciu „localhost”. Naprawiłem to, używając zamiast tego rzeczywistego adresu IP (192.168 ...)
źródło
Widziałem ten sam błąd po użyciu msdeploy do skopiowania aplikacji na nowy serwer. Okazało się, że powiązania nadal korzystały z adresu IP z poprzedniego serwera. Dlatego sprawdź dokładnie adres IP w powiązaniach usług IIS. (Po fakcie wydaje się oczywiste, ale nie przyszło mi od razu do głowy, żeby to sprawdzić).
źródło
Dokładnie sprawdź dokładny adres URL, który podajesz. Widziałem ten błąd, gdy przegapiłem prefiks trasy zdefiniowany w ASP.NET, więc nie wiedziałem, gdzie skierować żądanie.
źródło
Upewnij się, że usługi IIS nasłuchują Twojego portu.
W moim przypadku to był problem. Musiałem więc zmienić port na inny, taki jak 8083 i rozwiązało to problem.
źródło