Haben Sie überprüft, ob die Bindung IIS ist? (inetmgr.exe) Es ist möglicherweise nicht registriert, um alle Hostnamen auf 8080 zu akzeptieren.
Wenn Sie es beispielsweise für mysite.com:8080 einrichten und unter localhost: 8080 aufrufen, erhält IIS die Anforderung, verfügt jedoch nicht über eine entsprechende Hostnamenbindung, sodass sie abgelehnt wird.
Darüber hinaus sollten Sie die IIS-Protokolle (C: \ inetpub \ logs \ wmsvc #) auf dem Server überprüfen und prüfen, ob Ihre Anforderung angezeigt wird. Dann wissen Sie, ob es sich um ein Problem auf Ihrem Client oder auf dem Server selbst handelt.
FWIW, wenn Sie nur Anfragen an einen beliebigen Hostnamen / eine beliebige IP-Adresse zulassen möchten, können Sie Ihre Bindung folgendermaßen festlegen:
Ich verwende diese Bindung, damit ich eine VM mit IE6 laden und dann meine Anwendung debuggen kann.
BEARBEITEN: Während Sie IIS Express zum Debuggen verwenden, ist der Standardspeicherort für die Konfigurationsdatei dieser Option
quelle
Auf dieser Seite von Microsoft wird beschrieben, wie Sie den Zugriff auf IIS Server Express von anderen Computern im lokalen Netzwerk aus einrichten.
In einer Nussschale:
1) an einer Eingabeaufforderung mit Administratorrechten:
2) Erstellen Sie in der Windows-Firewall mit erweiterter Sicherheit eine neue eingehende Regel für Port 8181, um externe Verbindungen zuzulassen
3) Fügen Sie in applicationhost.config im Knoten für Ihr Projekt Folgendes hinzu:
<binding protocol="http" bindingInformation="*:8181:[your ip address]" />
NICHT hinzufügen (wie in einer anderen Antwort vorgeschlagen):
<binding protocol="http" bindingInformation="*:8181:*" />
Die obige Wildcard-Bindung hat meinen Zugriff von unterbrochen
http://192.168.1.6:8181/
quelle
netsh http delete urlacl url=http://[your ip address]:8181/
Daher habe ich dieses Problem gelöst, indem ich im IIS-Manager auf meine Website gegangen bin und den Hostnamen in den Site-Bindungen von localhost in * geändert habe. Sofort mit der Arbeit begonnen.
quelle
Für
Visual Studio 2017
undVisual Studio 2015
werden dieIIS Express
Einstellungen im versteckten.vs
Verzeichnis gespeichert und der Pfad ist ungefähr so. Das.vs\config\applicationhost.config
Hinzufügen einer Bindung wie unten funktioniertSyntax: https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.administration.binding.bindinginformation?view=iis-dotnet
quelle
<bindings> <binding protocol="http" bindingInformation="localhost:8802:*" /> <binding protocol="http" bindingInformation="127.0.0.1:8802:*"/> </bindings>
Vergessen Sie nicht, sich auch an die IPv6-Adresse zu binden! Ich habe versucht, eine Site auf 127.0.0.1 mit localhost hinzuzufügen, und habe den Fehler "Fehlerhafte Anfrage / ungültiger Hostname" erhalten. Als ich localhost pingte, wurde es in :: 1 aufgelöst, da IPv6 aktiviert war, sodass ich nur die zusätzliche Bindung hinzufügen musste, um das Problem zu beheben.
quelle
Dies ist mein Problem:
(Entschuldigung für mein schlechtes Englisch)
1.) Öffnen Sie cmd einen Administrator und führen Sie den Befehl aus (ohne eckige Klammern): netsh http add urlacl url = http: // [ip Adresse]: [Port] / user = jeder
2.) Dokumente / iisexpress / config / applicationhost.config und in Ihrem Stammprojektordner im Ordner (versteckter Ordner) .vs / config / applicationhost.config müssen Sie dem "site" -Tag eine Zeile hinzufügen:
3.) Öffnen Sie "Manager für Internetinformationsdienste (iis)" (falls nicht gefunden: Schreiben Sie in serch in der Tasckbar "Fensterfunktionen ein- oder ausschalten" und öffnen Sie das Resulet. Aktivieren Sie dann das Kontrollkästchen "Internetinformationsdienst" und installieren Sie es ) Klicken Sie im linken Bildschirm auf Computername -> Sites -> Standardwebsite und dann im rechten Bildschirm auf "Bindung". Klicken Sie auf die Schaltfläche Hinzufügen, um zu erfahren, was Sie benötigen, und drücken Sie OK.
4.) Öffnen Sie "Windows-Firewall mit erweiterter Sicherheit", drücken Sie im linken Bildschirm auf "Eingehende Regeln" und dann im rechten Bildschirm auf "Neue Regel ...". Überprüfen Sie den Port und klicken Sie auf Weiter, überprüfen Sie TCP und Ihren Port und drücken Sie auf Weiter. Verbindung zulassen "und drücken Sie Weiter, aktivieren Sie das Kontrollkästchen Alle und klicken Sie auf Weiter, wirte Name und drücken Sie Fertig stellen.
getan.
quelle
Ich bin nicht sicher, ob dies Ihr Problem war, aber für jeden, der versucht, von seinem Computer aus auf seine Webanwendung zuzugreifen und dieses Problem hat:
Stellen Sie sicher, dass Sie eine Verbindung zu
127.0.0.1
(akalocalhost
) und nicht zu Ihrer externen IP-Adresse herstellen.Ihre URL sollte so etwas wie
http://localhost:8181/
oderhttp://127.0.0.1:8181
und nichthttp://YourExternalIPaddress:8181/
.Zusätzliche Information:
Der Grund dafür ist, dass Ihre Firewall möglicherweise Ihre eigene Anforderung blockiert. Es kann eine Firewall auf Ihrem Betriebssystem sein und es kann (der übliche) Ihr Router sein.
Wenn Sie eine Verbindung zu Ihrer externen IP-Adresse herstellen, stellen Sie über das Internet eine Verbindung zu Ihnen her, als wären Sie ein Fremder (oder ein Hacker).
Wenn Sie jedoch eine Verbindung zu Ihrem lokalen Host herstellen, stellen Sie eine lokale Verbindung als Sie selbst her, und der Block wird offensichtlich nicht benötigt (und insgesamt vermieden).
quelle
localhost
, es ist das, worauf es sich bezieht (127.0.0.1
). Ich sage nur, dass Sie sich damit verbinden und nicht mit Ihrer extern sichtbaren IP. Es gibt keine Abhängigkeit vom lokalen Host, er wird nur als Synonym verwendet. Ich werde meine Antwort bearbeiten, um dies klarer zu machen.Sie können das CMD-Tool Visual Studio 2005/2008/2010 verwenden. Führen Sie es als Administrator aus und schreiben Sie
Endlich kann ich meine App erfolgreich ausführen.
quelle
Wenn Sie auf einem lokalen Server arbeiten oder keinen Domainnamen haben, löschen Sie das Feld "Hostname:".
quelle
Überprüfen Sie Ihre lokale Hosts-Datei (z. B. C: \ Windows \ System32 \ drivers \ etc \ hosts). In meinem Fall hatte ich dies zuvor verwendet, um eine URL auf eine Entwicklungsbox zu verweisen, und sie dann vergessen. Als ich dann dieselbe URL wiederverwendete, erhielt ich immer wieder eine fehlerhafte Anfrage (ungültiger Hostname), da der Datenverkehr auf den falschen Server geleitet wurde.
quelle
Ich habe diesen Fehler erhalten, als ich versucht habe, einen Webservice mit "localhost" aufzurufen. Ich habe es behoben, indem ich stattdessen die tatsächliche IP verwendet habe (192.168 ...)
quelle
Ich habe den gleichen Fehler gesehen, nachdem ich msdeploy verwendet habe, um die Anwendung auf einen neuen Server zu kopieren. Es stellte sich heraus, dass die Bindungen immer noch die IP-Adresse des vorherigen Servers verwendeten. Überprüfen Sie daher die IP-Adresse in den IIS-Bindungen. (Scheint nachträglich offensichtlich, ist mir aber nicht sofort in den Sinn gekommen, es zu überprüfen).
quelle
Überprüfen Sie die genaue URL, die Sie angeben. Ich habe diesen Fehler gesehen, als ich das in ASP.NET definierte Routenpräfix verpasst habe, sodass es nicht wusste, wohin die Anforderung weitergeleitet werden soll.
quelle
Stellen Sie sicher, dass IIS Ihren Port überwacht.
In meinem Fall war dies das Problem. Also musste ich meinen Port auf etwas anderes wie 8083 ändern und es löste dieses Problem.
quelle