Jak rozwiązać błąd ERR_CONNECTION_REFUSED podczas próby połączenia się z hostem lokalnym z uruchomionym programem IISExpress - błąd 502 (nie można debugować z programu Visual Studio)?


100

Działa w systemie Windows Server 2008 i działało kilka miesięcy temu. Właśnie teraz ponownie używam tego serwera do pracy deweloperskiej z VS.

Jest to działający serwer WWW, który służy również do obsługi kilku witryn testowych.

Pojawiło się to podczas uruchamiania programu Visual Studio, a następnie uruchamiania projektów do debugowania.

Próba uruchomienia dowolnej witryny localhost:xxxxpo uruchomieniu IISExpress (przy użyciu rzeczywistych numerów portów w konfiguracji, aby uzyskać dostęp do różnych witryn):

This webpage is not available

ERR_CONNECTION_REFUSED

Zajmuję się tym już od kilku dni, ponieważ czytałem, że inni mieli podobne problemy, próbowałem większości rzeczy , które przeczytałem, w tym zmiany managedruntimeversionz „v4.0” na „v4.0.30319” dla .net 4.5 (nigdy nie miałem musiałem to zrobić wcześniej) i wyłączając moduł logowania (wszystkie sugestie tutaj ).

W moim hostspliku są tylko dwa wpisy wskazujące na wewnętrzne adresy IP serwerów. Brak localhostpowiązanych adresów IP lub odniesień.

Posunąłem się nawet do ponownej instalacji IIS Express i Visual Studio 2013. Stworzyłem również zupełnie nową WebApplicationwitrynę, aby spróbować rozwiązać ten problem (proste i żadne inne skomplikowane powiązania).

Kiedy włączam Fiddlera, na stronie widzę:

[Fiddler] The socket connection to localhost failed. 
ErrorCode: 10061. 
No connection could be made because the target machine actively refused it 127.0.0.1:23162

Przechwytywanie skrzypka

Usunąłem wszystkie ustawienia proxy z sekcji połączenia LAN IE, gdzie wcześniej otrzymywałem wyskakujące okienko red-x w VS wskazujące na coś takiego IISExpress nie może się uruchomić .

To nie jest kwestia SSL czy nie SSL.

Miałem zainstalowany serwer TFS - odinstalowałem go na wypadek, gdyby były jakieś dziwne powiązania, które przeszkadzały.

Kilkakrotnie próbowałem usunąć folder config / settings IISExpress.

Bieżąca aplikacjahost.config zawiera:

<site name="WebApplication1" id="4">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="C:\TFS-WorkRepository\Sandbox\WebApplication1\WebApplication1" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:23162:localhost" />
                </bindings>
            </site>
            <siteDefaults>
                <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
                <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
            </siteDefaults>
            <applicationDefaults applicationPool="Clr4IntegratedAppPool" />

Chciałbym, żeby był tag dla really-stuck .

Proszę zasugeruj, ponieważ nie chcę posuwać się do rozpędzania nowego serwera.

-- AKTUALIZACJA --

W pasku adresu URL, kiedy wpisuję nazwę komputera lub adres IP: xxxx, otrzymuję ERR_CONNECTION_TIMED_OUTzamiast ERR_CONNECTION_REFUSED.


Odpowiedzi:


100

Chcesz zmienić numer portu w swoim projekcie?

Właściwości projektu → Sieć → Serwery → Adres URL projektu:

wprowadź opis obrazu tutaj

Nie zapomnij kliknąć Create Virtual Directorylub odpowiedzieć „Tak” w monicie o utworzenie katalogu wirtualnego po zmianie numeru portu! (Dzięki Connor )

Uwaga: jestem trochę niechętny, aby opublikować to jako odpowiedź, ponieważ nie mam pojęcia, na czym polega problem ani co go spowodowało, ale miałem podobny problem, a zmiana numeru portu załatwiła mi sprawę. Publikuję to tylko zgodnie z sugestią w komentarzach, że zadziałało to również dla kogoś innego.

W moim przypadku wydawało się, że coś jest w konflikcie z konkretnym numerem portu, którego używałem, więc zmieniłem na inny i moja witryna od razu wyskoczyła! Nie jestem pewien, co to oznacza dla starego numeru portu i czy kiedykolwiek będę mógł go ponownie użyć. Może ktoś bardziej obeznany ode mnie może się w tym włączyć.


1
to zadziałało dla mnie - zamiast modyfikować ustawienia przeglądarki, jak wspomniano w tej odpowiedzi stackoverflow.com/questions/7227845/ ...
Don Cheadle

to działało dla mnie. po zmianie numeru portu zostałem poproszony o zmianę katalogu wirtualnego, który w jakiś sposób zmienił się na nieprawidłowy.
GraehamF

U mnie też to zadziałało. Nie mam pojęcia, jak to się stało. Zatrzymałem IIS Express, a przy następnym uruchomieniu nic poza błędem.
Joseph Ferris,

1
Po zmianie numeru portu nie zapomnij kliknąć „Utwórz katalog wirtualny”!
Connor Williams

Po prostu to znowu mi się dzisiaj przytrafiło! : / Chociaż cieszę się, że moja sugestia pomaga ludziom, na pewno chciałbym dowiedzieć się, co się dzieje. Powoli przechodzę przez dostępne numery portów tutaj: P
s

37

Dzięki za wszystkie odpowiedzi. Wypróbowałem je wszystkie, ale żaden z nich nie działał dla mnie. Udało się usunąć plik applicationhost.config z folderu .vs (znajdującego się w folderze projektu / rozwiązania) i utworzyć nowy katalog wirtualny (Właściwości projektu> Sieć> Utwórz katalog wirtualny). Mam nadzieję, że to pomoże komuś innemu.


3
Napotkałem ten sam problem, gdy otworzyłem rozwiązanie VS2015 w VS2013 i pracowałem w nim przez chwilę, a następnie wróciłem do VS2015. Usunięcie pliku applicationhost.config rozwiązało problem.
Gary.Ray

W moim przypadku applicationhost.config i ponowne uruchomienie Visual Studio doprowadziło do „niepowodzenia ładowania projektu”. Nie mogłem wtedy nawet uzyskać dostępu do właściwości projektu.
Alex

34

Ten problem może być spowodowany tym, że w niedawnej przeszłości w konfiguracji aplikacji było używane powiązanie adresu IP.

Kroki, aby rozwiązać problem:

  • Uruchom poniższe polecenie w terminalu poleceń dostępu administratora

netsh http show iplisten

Jeśli zobaczysz coś takiego jak poniżej, to rozwiązanie może ci nie pomóc.

Adresy IP obecne na liście nasłuchiwania IP:

0.0.0.0

Jeśli zobaczysz coś innego niż 0.0.0.0, spróbuj wykonać poniższe kroki, aby to naprawić.

  • Uruchom następujące polecenie powłoki w kolejności z podwyższonym terminalem poleceń

netsh http usuń iplisten ipaddress = 11.22.33.44

netsh http dodaj iplisten ipaddress = 0.0.0.0

iisreset

  • (Tutaj 11.22.33.44 to rzeczywisty adres IP, który należy usunąć)

Teraz twój issexpress jest ustawiony na nasłuchiwanie każdego polecenia ping przychodzącego do wiązania hosta lokalnego.


@Niraj Kumar Chauhan uratował pączek dnia !! Lifesaver ... Nie jestem pewien, jak skasowano 0.0.0.0, ale dodanie go z powrotem rozwiązało problem.
Sethles

Po siedmiu godzinach poszukiwań, dlaczego serwer raportów usługi Power BI nie nasłuchuje poprawnie: 2 sekundy tego rozwiązania rozwiązały problem. Dzięki! Nasza istniejąca konfiguracja miała '::' zamiast 0.0.0.0; Czy to nie to samo i / lub jak można to zmienić?
MattV

Hej, zadziałało! Na moim komputerze pierwsze polecenie pokazało zero adresów IP, więc po prostu uruchomiłem polecenie „add” i polecenie „iisreset”. Potem nadal musiałem ponownie wdrożyć projekt i ponownie uruchomić usługi IIS, ale to zadziałało.
Mathew Alden

20

Właśnie to naprawiłem dla mojej maszyny. Może dla niektórych to zadziała. Może nie dla innych, ale oto, co zadziałało dla mnie.

W IIS musiałem dodać powiązania dla https do domyślnej witryny internetowej (lub, jak przypuszczam, witryny, na której uruchamiasz aplikację).

wprowadź opis obrazu tutaj

Teraz mój localhost działa podczas debugowania z programu Visual Studio.


Uwaga: sprawdzenie, czy to jest problem, polega po prostu na zmianie https na http w adresie URL, ponieważ powiązanie http powinno już być na miejscu.
DubDub

To naprawiło to dla mnie. Podejrzewam, że kiedy powiedziałem Visual Studio, aby zbudował drugą aplikację na moim serwerze deweloperskim IIS, coś musiało usunąć powiązania mojej pierwszej aplikacji.
Mathew Alden

7

Miałem ten sam problem. Wypróbowałem te kroki:

  1. Zamknięto program Visual Studio 2017
  2. Usunięto [ścieżka rozwiązania] .vs \ config \ applicationhost.config
  3. Ponownie otworzyłem rozwiązanie i kliknąłem [Utwórz katalog wirtualny]
  4. Próbowano uruchomić => ERR_CONNECTION_REFUSED
  5. NIEUDANE

Ponowna próba:

  1. Zamknięto program Visual Studio 2017
  2. Usunięto [ścieżka rozwiązania] .vs \ config \ applicationhost.config
  3. Usunięto plik. \ Documents \ IISExpress \ config \ applicationhost.config
  4. Ponownie otworzyłem rozwiązanie i kliknąłem [Utwórz katalog wirtualny]
  5. Próbowano uruchomić => ERR_CONNECTION_REFUSED
  6. NIEUDANE

Ponowna próba:

  1. Zamknięto program Visual Studio 2017
  2. Usunięto [ścieżka rozwiązania] .vs \ config \ applicationhost.config
  3. Usunięto plik. \ Documents \ IISExpress \ config \ applicationhost.config
  4. Dodano hosta lokalnego 127.0.0.1 do C: \ Windows \ System32 \ drivers \ etc \ hosts
  5. Ponownie otworzyłem rozwiązanie i kliknąłem [Utwórz katalog wirtualny]
  6. Próbowano uruchomić => ERR_CONNECTION_REFUSED
  7. NIEUDANE

CO DZIAŁAŁO:

  1. Zamknij program Visual Studio 2017
  2. Usuń [ścieżka rozwiązania] .vs \ config \ applicationhost.config
  3. Uruchom „Zarządzaj certyfikatami komputera” i znajdź certyfikat „localhost” w Osobiste-> Certyfikaty wprowadź opis obrazu tutaj
  4. Usuń ten certyfikat (zrób to na własne ryzyko)
  5. Start Panel sterowania \ Wszystkie elementy Panelu sterowania \ Programy i funkcje
  6. Zlokalizuj „IIS 10.0 Express” (lub własną wersję IIS Express)
  7. Kliknij „Napraw” wprowadź opis obrazu tutaj
  8. Otwórz ponownie rozwiązanie i kliknij [Utwórz katalog wirtualny]
  9. Uruchom projekt internetowy.
  10. Dostaniesz to pytanie: wprowadź opis obrazu tutaj. Kliknij „Tak”
  11. Dostaniesz to pytanie: wprowadź opis obrazu tutaj. Kliknij „Tak”
  12. Teraz działa.

6

Rozwiązanie Sama zadziałało dla mnie, ale nie chciałem działać jako administrator jako trwałe rozwiązanie.

Tak to rozwiązałem w moim przypadku:

  1. Uruchom CMD jako administrator
  2. Wpisz „netsh http show urlacl” i znajdź zarezerwowany adres URL z odpowiednim portem
  3. Wpisz „netsh http delete urlacl url = YourReservedUrlHere”

Potem mogłem uruchamiać aplikację bez uprawnień administratora. Ale zepsuło to możliwość przeglądania mojej aplikacji z komputera zewnętrznego. Na razie wystarczająco blisko.


Dzięki, rozwiązałem mój problem. Po usunięciu zarezerwowanego adresu URL odbuduj projekt, a następnie będzie działał idealnie bez trybu administratora.
Parveen,

5

W moim przypadku było to spowodowane uruchomieniem usług IIS bez uprawnień administracyjnych. Kiedy uruchomiłem IIS jako administrator i uruchomiłem witrynę, działało dobrze


To była odpowiedź dla mnie, chociaż nie pamiętam, żebym uruchomił VS jako administrator, gdy pierwszy raz otworzyłem projekt, kiedy zadziałał.
Stafford Williams,

o tak (klepie się w czoło)
johntrepreneur

3

W moim przypadku było to spowodowane nieskończoną pętlą / przepełnieniem stosu.


1

Rozwiązałem ten problem, uruchamiając Visual Studio z Run as administrator. Jest to również wymagane, jeśli chcesz opublikować projekt w lokalnych usługach IIS.

Aby ustawić to na stałe: -

  1. Kliknij prawym przyciskiem myszy ikonę programu Visual Studio
  2. Wybierz Properties
  3. Kliknij Advanced
  4. Upewnij się, że Run as administratorjest zaznaczony
  5. Kliknij OKdo końca.
  6. Uruchom program Visual Studio, załaduj projekt i rozpocznij debugowanie

1

W moim przypadku mój współpracownik zmienił nazwę rozwiązania tak, że po otrzymaniu najnowszej wersji projektu uruchamiam swoją aplikację internetową z IIS EXPRESS, a następnie otrzymałem wiadomość ERR_CONNECTION_REFUSEDw moim Google Chrome.

Po wypróbowaniu wszystkich rozwiązań, które znajduję w Internecie, ostatecznie rozwiązałem problem, wykonując następujące czynności:

  1. Zamknij VS
  2. Usuń .vsfolder w folderze projektuwprowadź opis obrazu tutaj

  3. Uruchom jako administrator VS

  4. Otwórz debugowanie> Właściwości [Twoja aplikacja]> Sieć

  5. Zmień port w adresie URL projektu i nie zapomnij użyć https ponieważ w moim przypadku, gdy używam http, nadal nie działa.

  6. Kliknij Create virtual directory

  7. Uruchom aplikację ponownie, używając IIS EXPRESS.

  8. Aplikacja internetowa została pomyślnie uruchomiona.

Mam nadzieję, że to pomoże.


1

Rozwiązałem, przechodząc do Właściwości projektu -> Debuguj, po włączeniu SSL i użyciu adresu w przeglądarce

wprowadź opis obrazu tutaj



0

Upewnij się, że masz również określoną stronę początkową. Kliknij prawym przyciskiem myszy stronę .aspx, której chcesz użyć jako strony początkowej, i wybierz opcję „Ustaw jako stronę początkową”


0

Prostym obejściem (zadziałało dla mnie) jest użycie adresu IP zamiast localhost. To powinno wystarczyć do zadań programistycznych.


0

Wypróbowałem wiele metod w Chrome, ale jedyną rzeczą, która działała, było „Wyczyść dane przeglądania”

Musiałem zrobić "zaawansowaną" wersję, ponieważ standard nie działał. Podejrzewam, że robił to „Ustawienia treści” .


0

Niedawno napotkałem ten problem, gdy kopiuję kod źródłowy z innego komputera.

-> Usuń folder .vs (jest to folder ukryty, więc upewnij się, że masz włączoną opcję wyświetlania folderu ukrytego)
-> otwórz Visual Studio i skompiluj swój projekt. Visual studio utworzy nowy folder .vs zgodnie z bieżącą konfiguracją systemu


0

Chociaż prawdopodobnie nie jest to związane z twoim problemem, miałem ten sam problem dzisiaj. Jak się okazuje, włączyłem moduł ponownego zapisywania adresów URL, aby zmusić moją witrynę do korzystania z protokołu HTTPS zamiast HTTP, a na moim środowisku produkcyjnym działało dobrze. Ale w moim systemie deweloperskim, gdzie działa jako aplikacja w mojej domyślnej witrynie, nie udało się ...
Jak się okazuje, moja domyślna witryna nie miała powiązania z HTTPS, więc moduł przepisywania prześle mnie z HTTP do HTTPS, ale nic nie było słuchanie portu HTTPS ...
Jest szansa, że ​​masz ten problem z podobnego powodu. Ten błąd wydaje się występować, jeśli nie ma odpowiedniego powiązania dla witryny, do której próbujesz uzyskać dostęp ...


0

Może to dotyczyć pewnej podgrupy osób z tym problemem ... być może w innym stylu.

Wymuszałem przekierowanie https na RELEASE.

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
  filters.Add(new HandleErrorAttribute());
  #if !DEBUG
  filters.Add(new RequireHttpsAttribute());
  #endif    
}

A w moim iis express nie było włączonego protokołu HTTPS. Działa poprawnie na DEBUG


0

Po prostu próbowałem powiązać IP z IIS, ale skończyło się na tym, że majstrowałem przy plikach konfiguracyjnych IIS. Dosłownie wypróbowałem ponad 20 rozwiązań, w tym

  1. Usunięcie pliku .vs rozwiązania projektu
  2. Usunięcie pliku konfiguracji folderu usług IIS
  3. Usunięcie folderu usług IIS
  4. Aktualizacja VS2019
  5. Naprawa VS2019
  6. Niezliczone razy restart maszyn i VS.
  7. różne polecenia w CMS
  8. różne aktualizacje oprogramowania
  9. Różne porty się zmieniają

ale to, co zadziałało, co może zadziałać również dla kogoś innego, to REPAIRIIS z

Control Panel\Programs\Programs and Features

Jeszcze można odnieść się do tej odpowiedzi , jak również

Naprawa usług IIS10


0

Upewnij się, że debugowanie skryptów jest wyłączone

wprowadź opis obrazu tutaj

Otrzymywałem to sporadycznie, pomimo wypróbowania kilku z powyższych sugestii. Jak tylko to wyłączyłem, debugowanie mojej witryny działało jak sen. (Myślę, że włączyłem go tylko przez przypadek, a może w poprzednim życiu).


0

Jeśli używasz „prawdziwych” usług IIS, może się to zdarzyć, jeśli usługa W3SVC (publikowanie w sieci World Wide Web) zostanie zatrzymana.

Powinno wydawać się oczywiste, ale jeśli przypadkowo zatrzymałeś usługę lub ustawiłeś ją na ręczną, może się to zdarzyć.

Wiem, że tytuł mówi, że IIS express, jednak Google nie odfiltrowuje wyrażenia, nawet jeśli używa podpowiedzi -Express, więc mam nadzieję, że pomoże to komuś, kto znalazł tę stronę zamiast strony specyficznej dla IIS.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.