ASP.NET 5 MVC: nie można połączyć się z serwerem internetowym „IIS Express”


190

Co ja robię:

Usunięcie applicationhost.config, zlokalizowane w Documents\IISExpress\config, nie zmienia komunikatu o błędzie. (Jest też IISExpressfolder w program filesiprogram files (x86) .)

Coś zauważyłem i nie wiem, czy to problem:

Nie znaleziono pliku referencyjnego „lib / jquery-validation / jquery.validate.js”.

Mam zrzut z rawcap, ale nie widzę tam wiele. Niektóre z tego, co tam było:

„Framework”: {„FrameworkName”: „DNXCore, Version = v5.0”, „FriendlyName”: „DNX Core 5.0”, „ShortName”: „dnxcore50”, „RedistListPath”: null}

Nie zauważam problemu, ale mam dane sieciowe, jeśli może to pomóc zrozumieć, dlaczego nie mogę połączyć się z serwerem internetowym. Dostaję RST,ACKnatychmiast, więc domyślam się, że port jest zamknięty i cokolwiek to jest ten serwer WWW, nie jest konfigurowane.

Więcej na temat tego problemu: błąd 800700c1 z / trace: error

Próbowałem:

  • usuwanie applicationhost.config (i zmiana numeru portu)
  • prowadzenie Visual Studio jako administrator
  • usuwanie folderu IISExpress w Dokumentach (zmienia komunikat o błędzie do momentu ponownej instalacji folderu)
  • włączanie i wyłączanie ssl, kopiowanie adresu URL do pola uruchamiania. (uwaga: nie używam ssl)
  • kasowanie wszystkich błędów sfc / scannow
  • uruchomienie iisexpress z wersją x86 i wersją 64-bitową


1
spróbuj po otwarciu programu Visual Studio prawym przyciskiem myszy i uruchomieniu jako administrator ..
Hazem Torab

Wypróbowuję wszystkie sugestie, które ludzie mi dają, nawet jeśli próbowałem wcześniej.
Sarek

czy możesz otworzyć nowy projekt i sprawdzić, czy to działa? Zrestartować komputer? Przenieś projekt do innego katalogu
Sebastian 506563

1
Dziękuję, ale to też nie działało.
Sarek

Odpowiedzi:


254

Po zainstalowaniu aktualizacji 2 dla programu Visual Studio 2015 zacząłem otrzymywać ten sam błąd. Próbowałem wszystkiego powyżej bez powodzenia. Znalazłem jednak rozwiązanie, które działa dla mnie:

  1. Usuń plik YourSolutionFolder \ .vs \ config \ applicationhost.config (uwaga: .vs to ukryty folder)
  2. Otwórz program Visual Studio, kliknij prawym przyciskiem myszy witrynę sieci Web> Właściwości> karta Debugowanie> Ustawienia serwera WWW> Adres URL aplikacji - zmień numer portu.

Człowieku, mój błąd wrócił, znalazł to również na innej stronie, ale wciąż daje cholerny błąd. Wkurza mnie. Chciałbym uruchomić konsolę internetową, ale to nie ma obserwatora, więc mogę po prostu ctrl + s, odświeżyć.
René Sackers

Omg, to działa. Usunąłem folder IISExpress w moich dokumentach, następnie usunąłem ten plik, a następnie zacząłem otrzymywać ten błąd, ale zaakceptowaną odpowiedzią było rozwiązanie: stackoverflow.com/questions/33166403/... i teraz działa: |
René Sackers

3
Dla mnie to było.vs\config\<MyProject>\config\applicationhost.config
laggingreflex

2
gdzie widzisz web site, że musisz kliknąć prawym przyciskiem myszy?
CodyBugstein,

13
W przypadku projektu Net Core 2.2 - po MASYWNEJ walce i wypróbowaniu wszystkiego, od usunięcia folderu .vs, usunięcia konfiguracji IIS Express, zmiany numerów portów, zmian powiązań i uruchomienia VS jako administrator I NAPRAWDĘ naprawiłem problem poprzez 1. zamknięcie VS, 2. usunięcie launchSettings.json3. otwarcie VS, który został ponownie wygenerowany launchSettings.json. Nie było oczywiste, że plik jest uszkodzony lub niepoprawny, a nawet gdy został zmieniony w celu spowodowania awarii.
Quinton Smith

189

Wyjdź z VS i usuń plik (projekt) .vs \ applicationhost.config. Uruchom ponownie VS. Powinno zacząć działać.


19
To działało dla mnie w VS2017, bez konieczności zmiany portu.
mlienau

4
Po zrobieniu tego dla mnie potrzebny był Visual Studio jako Administrator i działał, dzięki!
DigaoParceiro

5
Szczególnie ważny jest dla mnie RUN AS ADMINISTRATOR. (chociaż mam Asp.net Core 2.0 VS2017.
Bart Mensfort

1
Usunąłem cały .vsfolder i działało dla mnie, tylko tyle
FindOutIslamNow

9
Ponowne uruchomienie VS2017 nie naprawiło, ale ponowne uruchomienie komputera naprawiło to dla mnie. Nie trzeba zmieniać portu ani usuwać folderu. Mam nadzieję, że pomaga innym.
Tonmoy,

32

Spróbuj użyć innego portu. Właśnie założyłem nowy projekt Core 1.0 RC1 i dostałem ten sam błąd.

  • Kliknij projekt prawym przyciskiem myszy
  • Karta debugowania
  • Włącz Włącz i wyłącz SSL, powinien wygenerować nowy losowy port
  • Skopiuj adres URL SSL i wklej w polu Uruchom URL
  • Uruchom projekt

Pracował dla mnie (TM).

Odpowiedź od: https://stackoverflow.com/a/28650554/134761

wprowadź opis zdjęcia tutaj


1
Działało, ale tylko wtedy, gdy korzystałem z portu 60000. port 6000 zwrócił błąd: niebezpieczny port.
EKanadily

Nie działał w Visual Studio 2019 - za każdym razem korzystał z tego samego portu.
EJoshuaS - Przywróć Monikę

@ EJoshuaS-ReinstateMonica Wierzę, że to się bardzo zmieniło. Zobacz, jak twoja Startupklasa jest skonfigurowana i jakie appsettings.jsonmasz pliki. Istnieje również Properties\launchSettings.jsonmożliwość lokalnego uruchamiania różnych profili. docs.microsoft.com/en-us/aspnet/core/fundamentals/… dejanstojanovic.net/aspnet/2018/december/…
angularsen

27

Napotkałem ten problem w .net core 2.0, kiedy aktualizowałem numer portu mojego projektu.

Byłem w stanie rozwiązać problem w dwóch krokach:

  • KROK 1: USUŃ folder .vs, który jest ukryty w głównym folderze rozwiązania. (wcześniej zamknij Visual Studio), a następnie ponownie uruchom Visual Studio, folder i plik (applicationhost.config) w nim zostaną automatycznie utworzone przez Visual Studio.
  • KROK 2: W przypadku wielu projektów startowych , jeśli nadal napotykasz problem, uruchom jeden po drugim projekt jako uruchomienie, a następnie uruchom jako wiele projektów uruchamiania.

Rozwiązanie zadziałało. Dzięki :) A może USUŃ również folder .git?
krunal.cp

24

Miałem ten problem na .net core 2.1, Visual Studio w wersji 15.9.6. Kiedy usunąłem folder .vs, ponownie otworzyłem studio wizualne i problem nadal występował. Rozwiązanie, które zadziałało dla mnie poniżej:

  1. Usuń folder .vs (jest to folder ukryty).
  2. Restart komputera.

Inne rozwiązania:

  • Zamknij program Visual Studio, usuń foldery bin i obj z folderu projektu. Otwórz projekt, a następnie przebuduj rozwiązanie.
  • Spróbuj uruchomić program Visual Studio jako administrator.
  • Wyczyść rozwiązanie, a następnie odbuduj
  • 1) Czyste rozwiązanie. 2) Wyjdź z Visual Studio. 3) usuń folder .vs 4) Ponownie otwórz program Visual Studio

Byłem w stanie to zrobić, zamykając tylko Visual Studio, usuwając folder .vs, ponownie określając Visual Studio.
Robert Bratton

Tak, to działa na niektórych nie w moim przypadku. Nie mam pojęcia, dlaczego to nie zadziałało. Jedyne, co się stało, to ponowne uruchomienie komputera.
Daniaal

2
Mam to po niebieskim ekranie. Musiałem usunąć folder .vs i ponownie uruchomić komputer . Ponowne uruchomienie studia wizualnego nie wystarczyło.
johnb,

2
Moje kroki zostały skompresowane do: 1) Clean Solution. 2) Wyjdź z Visual Studio. 3) usuń folder
.vs

1
@samneric Dzięki za to, dodam ci rozwiązanie do odpowiedzi :)
Daniaal

13

Uruchom program VisualStudio z uprawnieniami administratora i uruchom projekt. Następnie zamknij VisualStudio i wszystkie błędy i uruchom VisualStudio ponownie z normalnym użytkownikiem.

Zrobiło to dla mnie.

Wygląda na to, że IIS musi napisać coś do jakiejś konfiguracji z uprawnieniami administratora (port 80 nie działał z normalnym użytkownikiem, ale port 6767 działał dobrze).


5
Tylko uprawnienia administratora pozwalają aplikacji na powiązanie z numerem portu mniejszym niż 1024. Dlatego 6767 działa dla Ciebie.
Lex Li

12

Miałem ten sam problem, byłem w stanie go rozwiązać, zmieniając numer portu.

  1. Kliknij projekt prawym przyciskiem myszy i wybierz właściwości

  2. Przejdź do sekcji Debugowanie

  3. W Ustawieniach serwera WWW zmień port URL aplikacji [zwiększ o jeden :)]

wprowadź opis zdjęcia tutaj


10

W moim przypadku była to inna aplikacja nasłuchująca na tym samym porcie, do której IIS Express próbuje się podłączyć. Muszę uruchomić, netstat -aoaby zobaczyć PID procesu, który używa tego samego portu i aplikacji zamykającej. W moim przypadku aplikacją był Viber.


10

Rozwiązaniem, które działało dla mnie było: Zamknij projekt VS W Eksploratorze plików przejdź do projektu i usuń cały folder „.vs” Uruchom ponownie projekt Uruchom jako „Debugowanie” Działa Najwyraźniej ma to coś wspólnego z „hostem aplikacji” plik .config ”.

Cieszyć się!


10

Wiele z tych odpowiedzi nie w pełni rozwiązuje dany problem. Prawdziwym problemem dla mnie było to, że miałem dwa powiązania korzystające z tego samego portu w moim pliku applicationhost.config ORAZ nie otworzyłem portu do drugiego powiązania (nie localhost) . VS pozwoli ci nadal działać w tych okolicznościach, ale tylko jeśli jesteś w trybie administratora (stąd wszystkie powyższe odpowiedzi).

Zasadniczo tworzysz dwie ekspresowe instancje IIS swojej aplikacji na tym samym porcie, więc zmiana jednego z portów w pliku applicationhost.config pozwoli ci kontynuować. Istnieją jednak dwa różne pliki applicationhost.config. Będziesz chciał wybrać ten, który ma wiążący adres IP i port widoczny we właściwościach projektu

wprowadź opis zdjęcia tutaj.

Przejdź do folderu, w którym możesz zobaczyć rozwiązanie i foldery projektu (pokaż ukryte elementy w Eksploratorze plików). Przejdź do ukrytego folderu .vs -> folder „YourAppName” -> config. Powinien zawierać informacje o wiązaniu widoczne we właściwościach projektu.

Przykład:

<bindings>
    <binding protocol="http" bindingInformation="*:7000:127.0.0.1" />
    <binding protocol="http" bindingInformation="*:7000:192.168.0.5" />
</bindings>

Zmień jeden z tych numerów portów na inny niż „7000”, aby nie próbować używać tego samego portu.

W moim przypadku używam adresu 192, który nie jest adresem localhost, więc muszę użyć niektórych poleceń netsh, aby otworzyć ten port i ip. Oto łącze, które pokazuje, jak otworzyć porty dla IIS Express, aby umożliwić zdalne połączenie. Uruchamianie zwykłego użytkownika nie będzie działać, dopóki nie uruchomisz wymienionych poleceń netsh.

Oto polecenia netsh:

  1. netsh http add urlacl url = http://192.168.1.42:58938/ user = wszyscy
  2. netsh advfirewall firewall dodaj nazwę reguły = "IISExpressWeb" katalog = w protokole = tcp localport = 58938 profil = prywatny remoteip = localsubnet akcja = zezwól

Skopiuj te polecenia i uruchom je w cmd z uprawnieniami ADMIN oraz z adresem IP i numerem portu.


To było dla mnie rozwiązanie, dzięki
WeisserHund

8

Właśnie zmieniłem swój profil z „IIS Express” na „MyProjectName” (co myślę, że używa Kestrel jako serwera http zamiast IIS) i teraz działa dobrze:

wprowadź opis zdjęcia tutaj


To nie jest rozwiązanie, ale obejście. Twoja odpowiedź sugeruje użycie innego serwera - Kestrel - podczas gdy OP wyraźnie próbuje zmusić IIS-Express do pracy.
Prolog

2
Po trzech dniach szarpania włosów to rozwiązanie mi pomogło. Dziękuję
Meir

7

W CELU WYJAŚNIENIA

Naprawdę wiele odpowiedzi tutaj jest takich samych i mówi coś w stylu „Uruchom ponownie i to magicznie działa ponownie”.

Cóż, 9 na 10 osób ma taki problem, jak PO, ponieważ adres IP JEST JUŻ W UŻYCIU.

ODPOWIEDŹ

Mogą być używane 2 adresy IP. Oba można znaleźć:

1) Kliknij prawym przyciskiem myszy projekt początkowy

2) Kliknij „Właściwości”

3) Kliknij zakładkę „Debuguj”

Tutaj zobaczysz „URL aplikacji” i „URL SSL”.

  • Jeśli Twój „URL aplikacji” jest w użyciu, po prostu zmień go tam i zapisz, aby znów działał.

  • Jeśli używany jest „SSL URL”, zamknij VS, usuń plik „applicationhost.config” z ukrytego folderu .vs twojego projektu i ponownie otwórz VS.


6

Byłem w stanie przełączyć ten błąd, zmieniając jedną rzecz. W launchSettings.jsonpliku projektu aplikacji sieci Web ASP.Net Core 1.0 RC2 :

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "https://localhost:18177/",
      "sslPort": 0
    }
  },

do

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:18177/",
      "sslPort": 0
    }
  },

Zmieniłem na https, próbując uruchomić projekt przy użyciu tego protokołu. Najwyraźniej nie jest to miejsce na dokonanie tej zmiany. Podejrzewam, że tworzy wiele powiązań na tym samym porcie, a IIS Express tego nie lubi.


Musiałem to zrobić, aby zwiększyć numer portu. mój oryginalny post „utknął” i nie mam teraz czasu na ponowne uruchomienie lub
wymyślenie

6

Miałem ten sam problem, ale naprawiłem to, przechodząc do applicationhost.config i usuwając port, który nie został przeze mnie dodany (zgaduję, że IIS Express), który umieścił moją konkretną stronę portu na innym porcie.

Oto, co plik konfiguracyjny miał dla moich powiązań:

<bindings>
      <binding protocol="http" bindingInformation="*:54764:localhost" />
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>

Usunąłem pierwszy element powiązań, ponieważ jedynym portem, którego chciałem, był 44360. Mój plik konfiguracyjny wygląda teraz tak:

<bindings>
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>

Teraz nie widzę błędu podczas debugowania.

Zauważyłem również, że mój drugi interfejs API w moim projekcie ma również przypisany port 80, również go usunąłem.


5

usuń foldery bin i obj z folderu projektu i przebuduj.


Chociaż często ręczne czyszczenie często pomaga, nie rozwiąże problemu w tym przypadku, ponieważ problem znajduje się w pliku applicationhost.config i najprawdopodobniej jest spowodowany próbą dwukrotnego użycia tego samego adresu IP
MedievalCoder

5

Właśnie wyczyściłem swoje rozwiązanie, a następnie przebudowałem je i wreszcie wcisnąłem F5 i zadziałało! Tak prosty.


4

Nie będę udawać, że w pełni rozumiem, jaki błąd MS powoduje ten problem, ale oto inne potencjalne rozwiązanie:

W pliku .vs / config / applicationHost.config znajdź sekcję <system.applicationHost><applicationPools>. Pod basenami upewnij się, żemanagedRuntimeVersion wartość atrybutu jest zgodna z wartością zawartą w konfiguracji IIS dla systemu (i / lub wersji zainstalowanego środowiska .NET).

Na przykład może się okazać (tak jak ja), że wygenerowany plik ma:

    <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

W moim przypadku zastąpiłbyś to:

    <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0.30319" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

Zwróć uwagę na zastąpienie z „v4.0” na „v4.0.30319”. To rozwiązało problem.


Co wydaje się dziać:

Uważam, że VS generuje plik applicationHost.config z „domyślnymi” wersjami dla platformy .NET, które mogą nie pasować do konkretnej wersji zainstalowanej / skonfigurowanej w systemie. Możesz debugować / obserwować ten problem, śledząc wykonanie w Monitorze procesów i znajdując wiersz poleceń dla iisexpress.exe. Uruchomienie tego polecenia z /trace:errordodanym komunikatem daje bardziej pouczający komunikat o niepowodzeniu wstępnego załadowania CLR w wersji v4.0. To znaczy:

Uruchamianie IIS Express ...
Błąd podczas próby wstępnego załadowania CLR w wersji 4.0. hr = 80131700
Nie udało się zainicjować W3WP_HOST hr = 80131700
Zamknięcie modelu procesu o nazwie
Nie można uruchomić iisexpress.


W każdym razie, pomyślałem, że może to być pomocne dla kogoś innego, ponieważ dość często zdarza się, że wiele referencji zawiera złe informacje, a ja osobiście trafiłem kilka razy.


Żadne z tych rozwiązań nie działało dla mnie. Jeśli masz zainstalowany domyślny system Windows IIS (który jest dostarczany z systemem Windows) i masz do niego dostęp, spróbuj go użyć, który rozwiązał mój problem, po prostu dodaj tam nową stronę internetową lub nową aplikację i gotowe. w każdym razie to dziwne, że IIS Express nie może otworzyć strony. Jeśli chcesz go wyśledzić, po prostu dołącz go do procesu za pomocą ctrl + alt + pkrótkich klawiszy i zaznacz Show process for all usersi wybierz w3wp.exe(czasami trzeba odświeżyć stronę internetową, aby znaleźć w3wp.exe), a następnie naciśnij Attachprzycisk.
Mohammad Musavi

3

Spróbuj najpierw, jeśli działało i nagle przestało działać:

  • Zamknij Visual Studio
  • Zabij procesy iisexpress.exe
  • Ponownie otwórz program Visual Studio

3

Moje dzieje się, gdy tylko dodam nowe powiązanie w pliku applicationhost.config, działające jako administrator naprawił problem.


3

Wystarczy zamknąć studio wizualne, ponownie otworzyć i uruchomić. To zadziałało dla mnie.


3

Dla mnie problem polegał na tym, że inny proces korzystał z tego samego portu. (W moim przypadku to program Outlook korzystał z tego samego portu, co moja witryna, dlatego moja strona nie mogła się uruchomić)

Tak, możesz zmienić port lokalny, ale jeśli korzystasz z interfejsu API lub czegoś, czego potrzebują inne aplikacje, nie zawsze chcesz to zrobić.

Aby uzyskać listę aplikacji, które używają używanego portu, otwórz CMD i wpisz „netstat -aon”. Otrzymasz listę portów. Znajdź port, z którego powinna korzystać Twoja witryna lub z którego chcesz korzystać, i zapisz / zapamiętaj PID.

Teraz otwórz menedżera zadań i kliknij zakładkę „szczegóły”. Znajdź proces z PID i zakończ go. Teraz powinieneś być w stanie uruchomić IIS Express z tym portem.


3

Udało mi się to rozwiązać, uruchamiając ponownie komputer. Próbowałem kilku rzeczy bezskutecznie i ostatecznie poddałem się i ponownie uruchomiłem komputer. Działa dobrze teraz przez kilka dni po ponownym uruchomieniu. Prawdopodobnie wynik zawieszonego procesu.


3

Dla mnie było to połączenie następujących instrukcji :

Usuń plik .vs \ applicationhost.config aplikacji sieci Web i spróbuj ponownie.

A może, co najważniejsze, uruchomienie programu Visual Studio z uprawnieniami administratora.


3

Dodałem .UseUrls("https://localhost:<some port>/")do Program.cs. To chyba załatwiło sprawę!


2

Po prostu włączyłem „Enable SSL”. To rozwiązało mój problem.

  1. Kliknij projekt prawym przyciskiem myszy
  2. Karta debugowania
  3. Włącz Enable SSL „on” (jeśli jest wyłączone, tak było w moim przypadku)

2

Właśnie napotkałem ten sam problem i zabiłem wszystkie procesy „iisexpress.exe”, które nadal działały. To działało dla mnie!


2

Moje rozwiązanie (dla .net core 2.0) polegało na tym, że zapomniałem dodać numer portu w applicationUrl pod iisExpress w launchSettings.json

"iisExpress": {
  "applicationUrl": "https://localhost:50770",
  "sslPort": 50770
}

Kiedy launchSettings.jsonjest automatycznie generowany lub aktualizowany przez VS, applicationUrlpowinien to mieć /na końcu. Więcej informacji można znaleźć na blog.lextudio.com/…
Lex Li

2

Problem może wynikać z tego, że [√] Enabled SSLzostał wybrany dla twojego projektu (zobacz Debugzakładkę w oknie ustawień projektu), ale Visual Studio decyduje się być głupi i skonfigurować coś podobnego http://localhost:32396. Powodem niepowodzenia jest to, że 1. nie jestHTTPS i 2. certyfikat nie jest ważny. Aby to wymusić, musisz użyć portu z zakresu 44300-44398.

Zobacz https://stackoverflow.com/a/24957146/1236397



1

Spróbuj w cmd

taskkill /im iisexpress.exe /f
taskkill /im dotnet.exe /f

i naciśnij f5. Nie zmieniam portów, nie usuwam plików ani nie uruchamiam ponownie VS.


Może wyjaśnić, że trochę odpowiadasz. Samo zabicie procesu może nie być tutaj odpowiedzią. A co potem?
Shiham
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.