Ich verwende das neue Visual Studio 2013 zum ersten Mal mit IISExpress (zuvor verwendeter ASP.net-Entwicklungsserver unter VS2010). Ich habe Probleme beim Debuggen meines Projekts.
Folgendes sehe ich in Chrome:
Es kann keine sichere Verbindung zum Server hergestellt werden. Dies kann ein Problem mit dem Server sein oder ein Clientauthentifizierungszertifikat erfordern, über das Sie nicht verfügen. Fehlercode: ERR_SSL_PROTOCOL_ERROR
Ich habe meine Eigenschaften -> Webdatei aktualisiert, sodass die Projekt-URL jetzt eine https-URL verwendet. Danach erhalte ich jedoch beim Starten einen neuen Fehler:
Die Verbindung zu localhost wurde unterbrochen. Fehlercode: ERR_CONNECTION_RESET
Vielen Dank
Antworten:
Wenn Sie URLRewrite verwenden, um SSL-Verbindungen in Ihrer web.config zu erzwingen, wird Ihre localhost-Adresse wahrscheinlich neu geschrieben, um https zu erzwingen. Wenn das Debuggen mit aktiviertem SSL für Sie nicht wichtig ist und Sie URLRewrite verwenden, sollten
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
Sie den Abschnitt zum Umschreiben Ihrer Datei web.config hinzufügen . Das Umschreiben für lokale Hostadressen wird gestoppt, aber in einer Produktionsumgebung beibehalten. Wenn Sie URLRewrite nicht verwenden oder mit SSL debuggen müssen, kann http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx hilfreich sein. Es ist für VS2010, sollte aber auch für VS2013 ausreichen.quelle
Ich habe ERR_CONNECTION_RESET erhalten, weil meine in Visual Studio 2013 / IIS Express konfigurierte App- Portnummer NICHT im Bereich von 44300-: 44398 lag . (Ich habe keine Warnungen zu entlassen erinnern, die bekommen aus dieser Reihe.) Ändern der Port - Nummer etwas in diesem Bereich ist alles , was ich tun musste, damit es funktioniert.
Ich bemerkte dies, nachdem ich die
netsh http show sslcert > sslcert.txt
Ausgabe überprüft hatte und etwas mit Dingen geklickt hatte, die ich kürzlich über die Portnummern gelesen hatte.quelle
netsh http add sslcert ...
den Port hinzufügen, den Sie verwenden möchten. In einigen Fällen nützlich.netsh
zur Rettung, das ist einen Blog-Beitrag wert ...Stellen Sie sicher, dass Sie alle vorherigen 'localhost'-Zertifikate entfernen, da diese mit den von IIS Express generierten Zertifikaten in Konflikt stehen können. Ich hatte denselben Fehler (ERR_SSL_PROTOCOL_ERROR) und es dauerte viele Stunden, bis ich ihn herausgefunden hatte, nachdem ich viele, viele "Lösungen" ausprobiert hatte. Mein Fehler war, dass ich mein eigenes 'localhost'-Zertifikat erstellt hatte und es zwei davon gab. Ich musste beide löschen und von IIS Express neu erstellen lassen.
So können Sie nach dem Zertifikat 'localhost' suchen und es entfernen:
Wählen Sie in Visual Studio das Projekt aus und aktivieren Sie auf der Registerkarte "Eigenschaften" SSL = true. Speichern, erstellen und ausführen. IIS Express generiert ein neues 'localhost'-Zertifikat.
Hinweis: Wenn dies nicht funktioniert, versuchen Sie Folgendes: Deaktivieren Sie IIS Express für VS-Projekte und stoppen Sie alle darauf ausgeführten Apps, bevor Sie das Zertifikat 'localhost' entfernen. Sie können auch zu 'Systemsteuerung> Programme' gehen und IIS Express reparieren.
quelle
netsh http delete sslcert ipport=0.0.0.0:443
netsh http add sslcert ipport=0.0.0.0:443 appid="{GUID-APP-ID}" certhash="THUMBPRINTOFMYCERTIFICATEINHEXADECIMAL"
Ich fasse die Schritte zusammen, die mir bei der Lösung dieses Problems geholfen haben:
Das New_Certificate_Hash ist Ihr Standardzertifikat, das mit Ihrem lokalen Host verknüpft ist (den wir in Schritt 4 gefunden haben) oder das Sie als neues Zertifikat hinzufügen möchten.
PS Vielen Dank für Ihre Antwort uosɐſ (die mir bei der Lösung dieses Problems geholfen hat)
quelle
Das Problem, das ich hatte, hatte irgendwann damit zu tun, dass HSTS für localhost aktiviert wurde und nicht erkannt wurde, dass dies meinen http: // localhost: someport in IIS Express beschädigen würde .
HSTS weist den Browser (in meinem Fall Chrome) an, IMMER eine URL über HTTPS anzufordern. Obwohl ich nicht einmal SSL für meine MVC 5-App aktiviert hatte, versuchte der Browser dennoch, mithilfe von HTTPS in der URL anstelle von HTTP auf meine Website zuzugreifen.
Die Reparatur?
quelle
Keine der oben genannten Optionen hat bei mir funktioniert. Ich musste folgendes tun:
Ich habe die Schritte von diesem Thread.
Hoffe das hilft.
quelle
In meinem Fall habe ich ein selbstsigniertes Zertifikat erstellt und es funktioniert, außer dass im Browser ein Fehler angezeigt wurde, weil das Zertifikat nicht vertrauenswürdig war. Daher habe ich das Zertifikat im Snapin "Zertifikate" in den Ordner "Vertrauenswürdige Stammzertifizierungsstellen> Zertifikate" verschoben. Es hat funktioniert, und dann habe ich Visual Studio für diesen Tag geschlossen.
Am nächsten Tag startete ich mein Projekt und erhielt den in der ursprünglichen Frage genannten Fehler. Das Problem ist, dass das Zertifikat, mit dem Sie IISExpress konfiguriert haben, im Ordner Personal> Certificates vorhanden sein muss. Andernfalls funktioniert HTTPS nicht mehr. Nach dem erfolgreichen Start von IIS Express können Sie das Zertifikat wieder an den vertrauenswürdigen Speicherort ziehen. Es funktioniert so lange, bis Sie IIS Express neu starten.
Ich möchte nicht jedes Mal das Zertifikat hin und her ziehen, sondern platziere einfach eine Kopie des Zertifikats an beiden Stellen, und jetzt funktioniert alles einwandfrei.
quelle
Ich habe das gleiche Problem in Visual Studio 2015. Weil ich die SSL-Bindung in web.config verwende
Und ich kann das Problem mit der Antwort von Herrn Djroedger beheben. Durch Ersetzen
mit
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
in meine web.config, also ist mein Code
quelle
Ich hatte dieses Problem. Ich hatte meine Site für die globale Anforderung https in FilterConfig.cs konfiguriert.
Ich hatte vergessen, die Projekt-URL in https zu ändern: aus diesem Tutorial http://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-deploy-aspnet-mvc-app-membership-oauth- SQL-Datenbank / unter ENABLE SSL Teil 4. Dies verursachte die Fehler, die Sie erhielten.
quelle
Das Problem, das ich hatte, hing mit der Antwort von @Jason Kleban zusammen, aber ich hatte ein kleines Problem mit meinen Einstellungen in den Visual Studio-Eigenschaften für IIS Express.
Stellen Sie sicher, dass nach dem Ändern des Anschlusses im Bereich von 44300 bis 44399 die Adresse ebenfalls mit beginnt
HTTPS
quelle
Ein weiteres Problem, das mir zweimal passiert ist:
In IIS Express spielt
applicationhost.config
die Reihenfolge der Bindungen eine Rolle. Eine Bindung hat möglicherweise Vorrang vor Ihrer SSL-Bindung, sodass sie nicht funktioniert.Beispiel:
Möglicherweise haben Sie eine Bindung ähnlich der zweiten hinzugefügt, um von außen auf Ihren WebService zugreifen zu können
localhost
. Da diese Bindung jede Adresse abhört, scheint sie die SSL-Bindung zu überschreiben, obwohl ein anderer Port verwendet wurde.Entfernen Sie die böse Bindung oder bewegen Sie sie nach unten.
quelle
Das Entfernen von IISExpress- und vs-Verzeichnissen und die Verwendung des SSL-Portbereichs von 44300 bis 44399 (einschließlich) aus diesem Artikel hat bei mir funktioniert
quelle
Dies ist anekdotisch, wie von einem Kollegen gehört, aber angeblich ist dies ein Problem, bei dem Chrome https erzwingt. Normalerweise starte ich in Firefox, daher hatte ich dieses Problem noch nie gesehen. Mit Firefox oder dh für meinen Kollegen gearbeitet.
quelle
Mein Problem wurde von Fiddler verursacht. Wenn Fiddler abstürzt, werden gelegentlich Ihre Proxy-Einstellungen beeinträchtigt. Das einfache Starten von Fiddler schien alles zu reparieren (vielleicht repariert es sich irgendwie selbst).
quelle
In solchen Situationen ist der ' Digicert Certificate Installation Checker ' häufig hilfreich.
Durch Vergleichen der Seriennummer konnte ich überprüfen, ob das versuchte SSL-Zertifikat das erwartete war.
Für mich war die Antwort von @Jason Kleban das eigentliche Problem, aber dies kann ein sehr nützliches Dienstprogramm sein, um Ihre grundlegenden Aussagen darüber zu überprüfen, welches Zertifikat geladen wird.
quelle
Wenn Sie benötigen einen Hafen außerhalb des 44.300-44.399 Bereichs verwenden, dann ist hier eine Abhilfe:
Dies registriert das IIS Express Development-Zertifikat an diesem Port und ist der einfachste Weg, um die Anforderungen des Bereichs 44300-44399 zu umgehen.
quelle
Ich habe gerade meinen Computer umgebaut. Dieser Thread gab mir die Hinweise, wo ich in den Projekteinstellungen> Web feststellte, dass das Projekt für die Verwendung von HTTP und des HTTP-Ports konfiguriert wurde. Durch die Aktualisierung auf HTTPS und den richtigen HTTPS-Port begann alles wieder zu funktionieren.
quelle
Um weitere Antworten zum Festlegen des SSL-Ports zwischen 44300 und 44399 zu erhalten, konnte ich weder die Eigenschaft SSL Enabled in Visual Studio ändern noch eine bestimmte SSL-URL festlegen. Andere Antworten wie die Reparatur von IIS Express haben nicht geholfen. Die Lösung bestand darin, parallel zur sln-Datei in den Ordner .vs zu wechseln, den Unterordner config zu öffnen und dann die Datei applicationhost.config zu bearbeiten. Dann habe ich die https-Zeile manuell hinzugefügt und VS neu gestartet.
quelle
In meinem Fall hatte ich einfach vergessen, dass ich eine Bindung für (in meinem Fall) https: // localhost: 44300 in vollem IIS eingerichtet hatte. Sie können nicht beides haben!
quelle
In meinem Fall wurde die localhost-URL beim Debuggen auf https: // localhost umgeleitet . Dies geschah von einem Moment zum anderen, ohne etwas zu ändern. Ich habe dieses Problem gelöst, indem ich den Browser neu geladen habe. Hier der Link
quelle