Próbowałem uruchomić moją usługę sieciową za pośrednictwem programu Visual Studio. Napotkałem problem taki jak:
---------------------------
Microsoft Visual Studio
---------------------------
Unable to launch the IIS Express Web server.
Failed to register URL "http://localhost:63591/" for site "xxxxxx" application
"/". Error description: The process cannot access the file because it is being
used by another process. (0x80070020)
---------------------------
OK
---------------------------
Widziałem menedżera zadań i stwierdziłem, że PID 4 jest używany przez System, a jego opis to, NT Kernel & System.
więc próbowałem zatrzymać http service
. Wszystkie usługi zależności zostały zatrzymane. Ale mam problem z zatrzymaniem usługi http, takiej jak
The service is starting or stopping. Please try again later.
Próbowałem więc zatrzymać i uruchomić usługę ręcznie. Ale proces End jest wyłączony. Byłoby pomocne, gdyby ktoś mógł pomóc w tej sprawie
visual-studio
iis-express
Priya
źródło
źródło
Odpowiedzi:
Z https://www.davidsalter.co.uk/unable-to-launch-the-iis-express-web-server-error-0x80070020/
Kod błędu
0x80070020
oznaczaERROR_SHARING_VIOLATION
, co w przypadku IIS Express (lub IIS) oznacza, że port, na którym próbuje nasłuchiwać, jest używany przez inny proces.Użyj
netstat
polecenia, aby dowiedzieć się, która aplikacja korzysta z portu.a
Parametr mówi netstat, aby wyświetlić wszystkie połączenia i porty słuchania.o
Parametr mówi netstat, aby wyświetlić identyfikator procesu związanego z połączeniem.Uruchomienie powyższego polecenia netstat spowoduje wyświetlenie danych wyjściowych, takich jak:
Ostatnia wyświetlana liczba (tutaj 9544) to identyfikator procesu.
źródło
TASKKILL /PID 2756 /F
zastąp2756
swoim identyfikatorem procesu-n
przełącznika - wykorzystuje on wyjście „numeryczne”, co oznacza, że nie marnuje czasu na wysyłanie zapytań do DNS w celu przekształcenia adresów IP w nazwy hostów.Miałem podobny problem podczas próby uruchomienia projektu z Visual Studio 2019 na Windows 10. Aplikacja nie mogła się uruchomić, ponieważ port był najwyraźniej używany przez inny proces. Jednak
netstat
polecenie wykazało, że port nie był używany przez żadną aplikację.Po 2 dniach szukania w Google znalazłem rozwiązanie, które działało dla mnie. Port, którego próbowałem użyć, znajdował się w wykluczonym zakresie portów, który można zobaczyć, uruchamiając polecenie:
Winowajcami, którzy zarezerwowali te porty w moim przypadku, były Docker dla Windows i Hyper-V
Rozwiązanie
Odinstalowałem Dockera (ponieważ go nie potrzebowałem) i wyłączyłem Hyper-V. Aby wyłączyć Hyper-V: Idź do: Panel sterowania-> Programy i funkcje-> Włącz lub wyłącz funkcje Windows. Odznacz Hyper-V i uruchom ponownie komputer.
Po restarcie komenda
netsh interface ipv4 show excludedportrange protocol=tcp
nie pokazała zarezerwowanych portów.Następnie dodałem port dla mojej aplikacji do wykluczonego zakresu portów, uruchamiając następujące polecenie z wiersza polecenia z podwyższonym poziomem uprawnień:
Następnie ponownie włączyłem Hyper-V (w razie potrzeby Docker można ponownie zainstalować) i ponownie uruchomiłem komputer.
Hyper-V zarezerwował teraz swoje porty bez ingerencji w port używany przez moją aplikację: Reserved Port Ranges
źródło
Miałem ten sam problem. Właśnie ponownie uruchomiłem Visual Studio i zadziałało.
źródło
Miałem ten sam problem. Jak @Kautsky Lozano wspomina powyżej, inna aplikacja używa tego portu.
Więc [dla systemu operacyjnego Windows] po prostu:
źródło
Napotkałem ten sam problem po uaktualnieniu rozwiązania z Visual Studio 2012 do 2015. Przyjechałem tutaj i pobiegłem
netstat
tylko po to, aby stwierdzić, że żadna inna aplikacja nie używa tych samych portów. Okazuje się, że miałem te same witryny z tymi samymi portami zmapowanymi w folderzeapplicationhost.config
atUsers/<username>/Documents/IISExpress/config
iapplicationhost.config
w.vs
folderze wewnątrz mojego rozwiązania. Powinienem zauważyć, że problem również nie zaczął się zaraz po aktualizacji. Po prostu pewnego ranka zaczyna zawodzić. Wydaje się, że kilka ponownych uruchomień również nie rozwiązało problemu.Usunięcie witryn będących w konflikcie z witryny przechowywanej w moich dokumentach i ponowne uruchomienie programu Visual Studio rozwiązało problem.
źródło
applicationhost.config
znajduje się w.vs\config
folderze w folderze rozwiązania.Jeśli netstat nie pokazuje niczego już używającego portu
netstat -ano | findstr <your port number>
Port może być wykluczony, wypróbuj to polecenie, aby sprawdzić, czy zakres jest blokowany przez coś innego:
netsh interface ipv4 show excludedportrange protocol=tcp
Możesz spróbować odblokować zakres z portu początkowego dla wielu portów (potrzebujesz wiersza polecenia z administratorem):
netsh int ip delete excludedportrange protocol=tcp numberofports=<number of ports> startport=<start port>
Nie mogłem ich odblokować, właśnie otrzymałem komunikat „Odmowa dostępu”, więc musiałem wybrać inny port dla mojej witryny.
źródło
Ten port używa innej aplikacji. To mogłoby ci pomóc
źródło
Właśnie miałem ten problem, mimo że netstat nie pokazywał żadnych konfliktów.
Naprawiono to dla mnie:
źródło
Po aktualizacji systemu Windows 10 i / lub Visual Studio 16+ może się zdarzyć z powodu wewnętrznego błędu, że IISExpress nie rejestruje żadnej witryny programistycznej, ponieważ nie akceptuje już
localhost
połączeń.Aby rozwiązać problem, wystarczy ponownie zarejestrować wiązanie. Aby to zrobić, uruchom z powłoki administracyjnej następujące polecenie:
źródło
Miałem ten problem podczas uaktualniania projektu MVC . Skopiowałem nowszy MVC .csproj do mojego istniejącego pliku .csproj, a następnie wróciłem do w pełni działającego projektu. To, czego nie uwzględniłem, to istniejący numer portu w starym .csproj. Nowy projekt miał nowy numer portu, ale miał wspólną nazwę projektu / zespołu. To wystarczyło, aby IIS Express stracił rozum i wyrzucił ten wyjątek.
Wystarczyło wykopać stary numer portu z git i zmienić adres URL IIS Express, aby uwzględnić go w ustawieniach projektu, aby to naprawić.
źródło
Najłatwiejszym pierwszym krokiem bez wchodzenia do konsoli poleceń jest po prostu zamknięcie wszystkich aplikacji (w tym VS), a następnie samodzielne uruchomienie VS i spróbuj ponownie. Prawdopodobnie inna aplikacja, taka jak Twoja przeglądarka, powoduje konflikt. W moim przypadku Chrome spowodował to i został rozwiązany podczas zamykania wszystkiego i ponownego uruchamiania VS. Ponownie otworzyłem Chrome i wszystko było w porządku.
Powyższe rzeczy dotyczące netstat są przydatne, ale dla mnie to tylko wtedy, gdy nie możesz zrobić tego, co sugeruję.
źródło
podsumować wszystkie odpowiedzi. Istnieją 2 rozwiązania. Obie pracowały dla mnie. - Rozwiązanie nr 1 Zabij aplikację używającą tego samego portu. - Rozwiązanie nr 2 Skonfiguruj IIS Express, aby używał innego portu dla swojego projektu.
Rozwiązanie nr 1 (zakładając, że port w komunikacie o błędzie to 443) Uruchom w wierszu poleceń:
zwraca:
TCP 0.0.0.0:443 pe01:0 LISTENING 2904
Ostatnia liczba (dzięki @ chris-schiffhauer) to PID do zabicia. Przejdź do Menedżera zadań -> Procesy -> [Pokaż procesy od wszystkich użytkowników], Zabij proces z PID = 2904. W moim przypadku był to host VmWare.Rozwiązanie nr 2 (Przypuśćmy, że wiadomość brzmiała: Rejestracja adresu URL „ http: // localhost: 433 / ” dla witryny „MyProject.Website0”… nie powiodła się ). Otwórz następujący plik w notedpad ++:
C:\Users\MY_USER_NAME\Documents\IISExpress\config\applicationhost.config
Znajdź w nim wiersz zawierający:Zmień
433
na coś innego, na przykład4330
lub usuń<binding.../>
tag powodujący konflikt .źródło
W moim przypadku wykonanie następujących czynności załatwiło sprawę:
Kiedy ponownie uruchomiłem Visual Studio, przydzieliło projektowi zupełnie nowy numer portu i działało idealnie
źródło
Numery portów nie są zgodne
W moim przypadku problem tkwił w moich tagach powiązań znalezionych w pliku konfiguracyjnym w .vs w folderze mojego rozwiązania, numery portów nie pasowały. Wiązania były następujące
A w moich ustawieniach miałem ustawiony adres URL jako
http://localhost:1943/
Więc to, co zrobiłem, to usunąć wewnętrzne powiązanie i uruchomić moją aplikację internetową, a następnie wygenerowałem nowe powiązanie z innym numerem, a następnie skopiowałem nowy wygenerowany port do moich ustawień, a następnie błąd zniknął.
źródło
Przejdź do Właściwości projektu sieci Web >> Sieć >> Adres URL projektu >> Zmień port, tj .: http: // localhost: 22345 / => http: // localhost: 22346 / Mam nadzieję, że ta pomoc!
źródło
Udało mi się rozwiązać ten problem, usuwając wszystko od
<site>
do</site>
tagów wUsers/<username>/Documents/IISExpress/config/applicatiohost.config
plikźródło
Właśnie zmarnowałem pół dnia próbując rozwiązać ten sam problem, poczułem, że powinienem dodać rozwiązanie, które w końcu zadziałało.
TL; DR Jeśli
netstat
wskazuje, że problem nie jest używany, nadal wypróbuj kilka innych w zupełnie innym zakresieWcześniej napotkałem ten problem, ale zazwyczaj ponowne uruchomienie Visual Studio, zmiana portów (zwiększenie o 1) lub ponowne uruchomienie załatwia sprawę. Jednak tym razem nic z tego nie pomogło i
netstat
nie znalazłem konfliktu w procesie. Nawet ponownie zainstalowałem IIS i Visual Studio i usunąłem kilka innych programów, które podejrzewałem, że mogą przeszkadzać. Wydawało się, że usługi IIS próbowały uruchomić wiele wystąpień tej samej witryny.W końcu spróbowałem biegać
netstat
bezfindstr
. Wizualnie przejrzałem listę aktywnych portów i zauważyłem, że chociaż te, które wypróbowałem, nie zostały wymienione, było kilka procesów korzystających z portów z podobnego zakresu. Zamiast tego szukałem zakresu, który był wolny, wybrałem numer portu i wydaje się, że teraz działa.Chciałbym usłyszeć, czy ktoś może wyjaśnić, dlaczego to mogło zadziałać?
źródło
Natknąłem się na ten problem dzisiaj w programie Visual Studio 2019 i spędziłem 3 godziny, zanim ostatecznie go zrozumiałem. Program Visual Studio używa 2 plików do śledzenia numeru portu SSL, więc musisz naprawić oba i musisz naprawić oba, gdy program Visual Studio jest zamknięty. Te dwa pliki to plik applicationhost.config znajdujący się w folderze .vs \ ??? \ config rozwiązania; a także folder .csproj.user projektu internetowego. Edytuj oba pliki i usuń niewłaściwe konfiguracje. Może nawet po prostu usuń oba pliki. Następnie ponownie otwórz aplikację w programie Visual Studio. Powodzenia!
źródło
U mnie to zadziałało.
źródło
Postępowałem zgodnie z instrukcjami @ Zoti i użyłem Monitora zasobów, aby znaleźć dany port.
Okazuje się, że Outlook został losowo przypisany do portu dla swojego kanału komunikacyjnego. Morał z tej historii jest taki, że może to być absolutnie wszystko.
źródło
Przyczyną tego błędu jest podanie nieprawidłowego numeru portu do aplikacji.
użyj portu w pobliżu numeru 8080, czyli:
aby zmienić port dla twojej aplikacji w Visual Studio
źródło
Próbowałem już następujących rzeczy:
Próbowałem też użyć tego, ale zero wyników.
netstat -aon | znajdź „: 80”
Próbowałem też użyć, ale też zwracałem zero wyników.
netstat -ao | findstr
Więc co zrobiłem, to usunąłem ten " Microsoft.VsHub.Server.HttpHostx64.exe ", a następnie mój projekt został pomyślnie uruchomiony i uruchomiony w przeglądarce. Błąd został naprawiony. Nie wiem dlaczego, ale to działa.
Oto zrzut ekranu:
źródło
Miałem ten sam problem, ale ustąpił po ponownym uruchomieniu przy użyciu uprawnień administratora. (To mógł być właśnie restart)
źródło
Miałem dzisiaj ten sam problem i nic, co znalazłem w internecie, nie działało. Używam portu 2057 od lat, ale nagle przestał działać. Zmiana na inną niską liczbę, np. 2058, dała ten sam komunikat o błędzie, ale kiedy zmieniłem go na 20057, wszystko znów działało. Może coś się zmieniło w sposobie obsługi niższych numerów portów.
źródło
IIS Express nie uruchamia rozwiązania w programie Visual Studio
źródło