Po raz pierwszy używam nowego programu Visual Studio 2013 z usługami IISExpress (wcześniej używany serwer ASP.net Development na VS2010). Mam problemy z debugowaniem projektu.
Oto, co widzę w Chrome:
Nie można nawiązać bezpiecznego połączenia z serwerem. Może to być problem z serwerem lub może wymagać certyfikatu uwierzytelniania klienta, którego nie masz. Kod błędu: ERR_SSL_PROTOCOL_ERROR
Zaktualizowałem plik internetowy Właściwości -> tak, aby adres URL projektu używał teraz adresu URL https. Jednak po wykonaniu tej czynności podczas uruchamiania pojawia się nowy błąd:
Połączenie z hostem lokalnym zostało przerwane. Kod błędu: ERR_CONNECTION_RESET
Dzięki
Odpowiedzi:
Jeśli używasz URLRewrite do wymuszania połączeń SSL w swoim web.config, prawdopodobnie przepisuje twój adres lokalnego hosta, aby wymusić https. Jeśli debugowanie z włączonym SSL nie jest dla Ciebie ważne i używasz URLRewrite, rozważ dodanie
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
do sekcji przepisywania pliku web.config. Zatrzyma przepisywanie dowolnego adresu hosta lokalnego, ale pozostawi go na miejscu w środowisku produkcyjnym. Jeśli nie używasz URLRewrite lub musisz debugować za pomocą SSL, może pomóc http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx . To jest dla VS2010, ale powinno wystarczyć również dla VS2013.źródło
Otrzymuję ERR_CONNECTION_RESET, ponieważ numer portu mojej skonfigurowanej aplikacji Visual Studio 2013 / IIS Express NIE mieści się w zakresie : 44300-: 44398 . (Nie przypominam sobie, żebym musiał odrzucać ostrzeżenia, aby wyjść poza ten zakres.) Zmiana numeru portu na coś z tego zakresu to wszystko, co musiałem zrobić, aby to zadziałało.
Zauważyłem to po przejrzeniu danych
netsh http show sslcert > sslcert.txt
wyjściowych i kliknięciu rzeczy, które ostatnio czytałem o numerach portów.źródło
netsh http add sslcert ...
aby dodać port, którego chcesz użyć. Przydatne w niektórych przypadkach.netsh
na ratunek, to jest warte wpisu na blogu ...Pamiętaj, aby usunąć wszystkie poprzednie certyfikaty „localhost”, ponieważ mogą one kolidować z certyfikatem wygenerowanym przez IIS Express. Miałem ten sam błąd (ERR_SSL_PROTOCOL_ERROR) i zajęło mi wiele godzin, zanim w końcu go rozgryzłem po wypróbowaniu wielu "rozwiązań". Mój błąd polegał na tym, że stworzyłem własny certyfikat „localhost” i było ich dwóch. Musiałem usunąć oba i ponownie utworzyć IIS Express.
Oto, jak możesz sprawdzić i usunąć certyfikat „localhost”:
W programie Visual Studio wybierz projekt i na karcie właściwości włącz SSL = true. Oszczędzaj, buduj i uruchamiaj. IIS Express wygeneruje nowy certyfikat „localhost”.
Uwaga: jeśli to nie zadziała, wypróbuj następujące rozwiązania: wyłącz IIS Express w projekcie VS i zatrzymaj wszystkie uruchomione na nim aplikacje przed usunięciem certyfikatu „localhost”. Możesz także przejść do „panelu sterowania> programy” i naprawić IIS Express.
źródło
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"
Podsumowuję kroki, które pomogły mi w rozwiązaniu tego problemu:
New_Certificate_Hash będzie Twoim domyślnym certyfikatem powiązanym z Twoim lokalnym serwerem (znalezionym w kroku 4) lub tym, który chcesz dodać jako nowy certyfikat.
PS Dziękuję za odpowiedź uosɐſ (która pomogła mi w rozwiązaniu tego problemu)
źródło
Problem, którego doświadczyłem, był związany ze mną, w pewnym momencie, gdy włączyłem HSTS dla localhost i nie zdawałem sobie sprawy, że to zepsuje mój http: // localhost: someport w IIS Express.
HSTS mówi przeglądarce (w moim przypadku Chrome), aby ZAWSZE zażądała adresu URL przy użyciu protokołu HTTPS. Dlatego, mimo że nawet nie włączyłem SSL dla mojej aplikacji MVC 5, przeglądarka nadal będzie próbowała uzyskać dostęp do mojej witryny za pomocą protokołu HTTPS w adresie URL zamiast HTTP.
Poprawka?
źródło
Żadna z powyższych opcji nie działała dla mnie. Musiałem wykonać następujące czynności:
Podjąłem kroki z tego wątku.
Mam nadzieję że to pomoże.
źródło
W moim przypadku utworzyłem certyfikat z podpisem własnym i sprawiłem, że działał, z wyjątkiem tego, że w przeglądarce pojawił się błąd, ponieważ certyfikat był niezaufany. Dlatego przeniosłem certyfikat do folderu Zaufane główne urzędy certyfikacji> Certyfikaty w przystawce Certyfikaty. Zadziałało, a potem zamknąłem program Visual Studio na jeden dzień.
Następnego dnia zacząłem projekt i otrzymałem błąd wymieniony w pierwotnym pytaniu. Problem polega na tym, że certyfikat, z którym skonfigurowałeś IISExpress, musi istnieć w folderze Osobiste> Certyfikaty lub HTTPS przestanie działać. Po pomyślnym uruchomieniu usług IIS Express można przeciągnąć certyfikat z powrotem do zaufanej lokalizacji. Będzie działać do momentu ponownego uruchomienia usług IIS Express.
Nie chcąc zawracać sobie głowy przeciąganiem certyfikatu za każdym razem, po prostu umieszczam kopię certyfikatu w obu miejscach i teraz wszystko działa dobrze.
źródło
Mam ten sam problem w Visual Studio 2015. Ponieważ używam wiązania SSL w web.config
I mogę rozwiązać ten problem, odpowiadając na pytanie pana dżroedgera. Wymieniając
z
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
do mojego web.config, więc mój kod jest
źródło
Miałem ten problem, skonfigurowałem moją witrynę pod kątem globalnego wymagania https w FilterConfig.cs.
Zapomniałem zmienić adres URL projektu na https: z tego samouczka http://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-deploy-aspnet-mvc-app-membership-oauth- sql-database / pod WŁĄCZ SSL część 4. Spowodowało to otrzymywane błędy.
źródło
Problem, który miałem, był związany z odpowiedzią @Jason Kleban, ale miałem jeden mały problem z moimi ustawieniami we właściwościach programu Visual Studio dla IIS Express.
Upewnij się, że po zmianie portu na z zakresu: od 44300 do 44399 adres również zaczyna się od
HTTPS
źródło
Inny problem, który zdarzył mi się dwukrotnie: w
IIS Express
applicationhost.config
kolejność powiązań ma znaczenie. Jedno powiązanie może mieć pierwszeństwo przed powiązaniem SSL, przez co nie będzie działać.Przykład:
Być może dodałeś powiązanie podobne do drugiego, aby mieć dostęp do swojej usługi internetowej z zewnątrz
localhost
. Ponieważ to powiązanie nasłuchuje na dowolnym adresie, wydaje się nadpisywać powiązanie SSL, chociaż został użyty inny port.Usuń złe wiązanie lub przesuń je w dół.
źródło
Usunięcie katalogów IISExpress i vs oraz użycie zakresu portów ssl od 44300 do 44399 (włącznie) z tego artykułu zadziałało dla mnie
źródło
Jest to anegdotyczne, jak słyszano od współpracownika, ale rzekomo jest to problem z wymuszaniem https przez Chrome. Zwykle uruchamiam się w przeglądarce Firefox, więc wcześniej nie widziałem tego problemu. Korzystanie z przeglądarki Firefox lub ie działało dla mojego współpracownika.
źródło
Mój problem został spowodowany przez Fiddlera. Gdy Fiddler ulega awarii, czasami miesza z ustawieniami serwera proxy. Wydawało się, że samo uruchomienie Fiddlera naprawia wszystko (być może sam się naprawia).
źródło
W takich sytuacjach często pomocny jest „ moduł sprawdzania instalacji certyfikatu Digicert ”.
Udało mi się sprawdzić, czy próba uzyskania certyfikatu SSL była tym, którego oczekiwałem, porównując numer seryjny.
Dla mnie @Jason Kleban odpowiedzią był rzeczywisty problem, ale może to być bardzo przydatne narzędzie do sprawdzenia podstawowych twierdzeń o tym, jaki certyfikat jest ładowany.
źródło
Jeśli musisz użyć portu spoza zakresu 44300-44399, oto obejście:
To rejestruje certyfikat IIS Express Development z tym portem i jest najłatwiejszym sposobem obejścia wymagania zakresu 44300-44399.
źródło
Właśnie odbudowałem komputer. Ten wątek dał mi wskazówki, gdzie zdałem sobie sprawę, że w ustawieniach projektu> Sieć projekt został skonfigurowany do korzystania z HTTP i portu HTTP. Po zaktualizowaniu go do HTTPS i prawidłowego portu HTTPS wszystko zaczęło działać ponownie.
źródło
Aby przejść do innych odpowiedzi dotyczących ustawiania portu SSL między 44300 a 44399, nie mogłem zmienić właściwości SSL Enabled w programie Visual Studio ani ustawić określonego adresu URL SSL. Inne odpowiedzi, takie jak naprawianie IIS Express, nie pomogły. Rozwiązaniem było przejście do folderu .vs równolegle do pliku sln, otwarcie podfolderu config, a następnie edycja pliku applicationhost.config. Następnie ręcznie dodałem linię https i ponownie uruchomiłem VS.
źródło
W moim przypadku po prostu zapomniałem, że mam ustawione powiązanie dla (w moim przypadku) https: // localhost: 44300 w pełnym IIS. Nie możesz mieć obu!
źródło
W moim przypadku adres URL localhost został przekierowany do https: // localhost, gdy debugowałem. Działo się to z jednej chwili na drugą, niczego nie zmieniając. Rozwiązałem ten problem, wykonując trudne ponowne załadowanie przeglądarki. Tutaj link
źródło