Projekt aplikacji internetowej […] jest skonfigurowany do korzystania z IIS. Nie można znaleźć serwera WWW […].

285

Mam plik sieciowy w moim pliku rozwiązania, który jest „niedostępny” po otwarciu rozwiązania. Po kliknięciu projektu sieci web prawym przyciskiem myszy i ponownym załadowaniu projektu pojawia się następujący błąd:

The Web Application Project mycompany.myapp.mywebproject is configured to use IIS. The Web Server 'http://localhost/MyWebApp could not be found.

Nie skonfigurowałem ręcznie wirtualnych katalogów dla tej aplikacji internetowej.

Według współpracowników program Visual Studio powinien monitować mnie o utworzenie katalogów wirtualnych, ale nie pojawia się monit.

Zainstalowałem VS2010 przed instalacją IIS na moim komputerze deweloperskim.

Oto moja konfiguracja maszyny programistycznej:

  • Windows 7 Enterprise
  • Dodatek Service Pack 1
  • 64-bitowy system operacyjny
  • Visual Studio 2010 Enterprise Service Pack 1
  • IIS wersja 7.5
praktyka dotnet
źródło

Odpowiedzi:

87

Kiedy tak się dzieje, najłatwiejszym rozwiązaniem jest ręczne utworzenie katalogu wirtualnego.

Przede wszystkim musisz upewnić się, że masz zainstalowaną właściwą wersję ASP.Net i że zainstalowałeś rozszerzenia IIS.

Aby to zrobić, przejdź do odpowiedniego folderu wersji .net w C: \ (Windows) \ Microsoft.NET \ Framework \ (dotnetver) \ (zastępując foldery w nawiasach odpowiednimi folderami na komputerze) i uruchom to polecenie

aspnet_regiis.exe -i

Następnie uruchom i zakończ, czasem uruchamiając

iisreset

z wiersza poleceń pomaga, czasem nie trzeba.

Następnie przejdź do Menedżera usług IIS i znajdź witrynę localhost i wybierz dodaj folder. Przejdź do folderu w projekcie, który zawiera rzeczywisty projekt ASP.Net i dodaj go.

Na koniec kliknij prawym przyciskiem myszy dodany folder i powinieneś mieć opcję „przekonwertuj na aplikację” lub „utwórz katalog wirtualny” lub coś podobnego.

!! Upewnij się, że katalog wirtualny ma nazwę „MyWebApp” !!

Załaduj ponownie swoje rozwiązanie i powinno działać.

Proszę bądź ostrożny; nie jest to pytanie programistyczne (i tak naprawdę nie powinno być tutaj zamieszczane), ale opublikowałem te wskazówki, ponieważ jest to powszechny problem, ale porady, które opublikowałem, są ogólne; polecenia, które wymieniłem są poprawne, ale kroki, które musisz wykonać w IIS mogą się różnić, zależy to od twojej wersji i uprawnień konta.

Powodzenia!

Russ Clarke
źródło
Postępowałem zgodnie ze wskazówkami i otrzymałem następujący błąd. Na początku usunąłem katalog wirtualny z powodu tego błędu. Nie można dodać zduplikowanego wpisu kolekcji typu „dodaj” z unikalnym atrybutem kluczowym „name” ustawionym na „Telerik_Web_UI_WebResource_axd”
praktyka dotnet
Co daje ten błąd, IIS lub Visual Studio po uruchomieniu rozwiązania?
Russ Clarke
Sprawdź także web.config dla nowego projektu asp.net, czy ma dwa lub więcej odniesień do 'Telerik.WebResource.axd', potrzebuje tylko jednego.
Russ Clarke
Sprawdziłem web.config .. kiedy usuwam niepoprawny wpis, wtedy pojawia się komunikat o błędzie, że usunięty wpis jest potrzebny.
praktykujący dotnet
wkrótce opublikuje osobne pytanie dotyczące nowego komunikatu o błędzie
praktyka dotnet
523

Ponieważ zaakceptowana odpowiedź wymaga Menedżera usług IIS, a IIS Express nie ma Menedżera usług IIS ani żadnego interfejsu użytkownika, oto rozwiązanie dla użytkowników IIS Express (i powinno działać również dla wszystkich innych):

Po otwarciu programu Visual Studio i wyświetleniu komunikatu o błędzie kliknij prawym przyciskiem myszy projekt Solution Explorer i wybierz „Edytuj {ProjectName} .csproj”

W pliku projektu zmień następujący wiersz:
<UseIIS>True</UseIIS>
na
<UseIIS>False</UseIIS>
Zapisz plik.

Teraz ponownie załaduj swój projekt.
Gotowe.

Będziesz wtedy mógł otworzyć swój projekt. Jeśli w tym momencie chcesz korzystać z IIS, po prostu przejdź do właściwości projektu, kliknij kartę „Internet” i wybierz opcję korzystania z IIS. Jest tam przycisk „Utwórz katalog wirtualny”. Może ci powiedzieć, że musisz uruchomić Visual Studio jako administrator, aby utworzyć ten katalog, więc zrób to w razie potrzeby.

Doug S.
źródło
33
w VS2010 UseIIS nie znajduje się w pliku csproj, ale w pliku
.csproj.user
2
W moim przypadku nadal chcę korzystać z IIS, więc po prostu zmieniłem adres URL, działałem idealnie dzięki.
kjetilh
Mam ten problem podczas aktualizacji i przeprowadzki. To działało dla mnie, chociaż ponieważ rozwiązanie nie ładowało się, właśnie otworzyłem csproj w edytorze tekstu. Dzięki Doug.
Kieran
2
To jest poprawna odpowiedź. Projekt jest skonfigurowany do korzystania zarówno z IIS, jak i IISExpress w tym samym czasie.
Aaron Reed
2
Używając VS2013, nie widzę Edytuj {ProjectName} .csproj po kliknięciu rozwiązania prawym przyciskiem myszy. Dokonałem edycji, przechodząc do systemu plików i ręcznie edytując plik .csproj. To było tylko do odczytu, więc musiałem trochę zatańczyć, ale zadziałało.
Al Lelopath,
222

Otwórz folder projektu i usuń {Project} .csproj.user , a następnie ponownie załaduj projekt w Visual Studio.

qjuanp
źródło
2
Jako jedyny w naszym zespole widziałem ten błąd IIS. Zespół programistów, z którym pracuję, miał ten sam plik .csproj z kontroli źródła, więc inne powyższe rozwiązania nie były moim problemem. Okazuje się, że wspomniany plik .csproj.user powodował ten błąd w mojej sytuacji. Dzięki!
Mój stos przepełnia się
3
To zadziałało dla mnie po wypróbowaniu większości wszystkiego
David
3
To jest poprawna odpowiedź. Rozwiązuje problem z konfiguracją projektu na twoim komputerze (szczególnie ważne podczas pracy z TFS).
Markus
1
Jest to również rozwiązanie, jeśli ustawiłeś niestandardowy znacznik iisurl, ale projekt nadal zaczyna się na lokalnym hoście <IISUrl> MachineName.domain: 12345 / </ IISUrl >
lsp.
5
Ten działał dla mnie. W moim przypadku nie było ustawienia <UseIIS>.
Techgration,
33

To rozwiązanie działało dla mnie: Kliknij prawym przyciskiem myszy Projekt i wybierz edytuj i znajdź następujący kod, jak pokazano poniżej na obrazku.

change the <UseIIS>True</UseIIS> to <UseIIS>False</UseIIS>

LUB

change the <IISUrl>http://example.com/</IISUrl> to <IISUrl>http://localhost/</IISUrl>

zrzut ekranu csproj

Umar Abbas
źródło
30

dla mnie musiałem usunąć te dwie linie z pliku .csproj

<ProjectGuid>{3AA499DF-4A65-43B7-8965-D08A4C811834}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

Próbowałem usunąć tylko pierwszy, ale to nie wystarczyło.

EDYCJA: Jak zauważyło wielu użytkowników, może to zmienić typ projektu lub bałagan w programie kontroli źródła. Nie mogę zbadać tych problemów, ponieważ był to projekt szkolny, którego już nie mam. Zachowaj ostrożność, próbując tego. Zrób przynajmniej kopię tego, co usuwasz.

kisslory
źródło
9
Ten działał i ten powinien być oznaczony jako odpowiedź. Wypróbowałem wiele rozwiązań sugerowanych w SO, ale żadne nie działało dla mnie oprócz tego jednego.
Bose_geek
3
Po wypróbowaniu wszystkich powyższych sugestii, ta właśnie działała dla mnie. Dziękuję mój koleś!
Noble-Savage
2
Zmienia się to na typ projektu, więc nie jest to już aplikacja internetowa.
Oram
3
Usunięcie <ProjectGuid> z pliku .csproj nie jest dobrym pomysłem. Aby załadować projekt wystarczy usunąć tylko <ProjectTypeGuids>, co również jest złym pomysłem, ponieważ zmienia typ projektu, jak wspomniano w @Oram. Ta odpowiedź jest dobra, jeśli nie chcesz zatwierdzać zmian, po prostu spójrz na kod w VS.
elshev
1
To rozwiązało błędy ładowania eksploratora rozwiązań, które napotkałem przy opracowanym przez kontrahenta rozwiązaniu Visual Studio 2010, które przenoszę do 2013 roku. Plik rozwiązania zawiera 2 projekty; aplikacja internetowa i usługa internetowa. Nie udało mi się załadować żadnego z nich, więc Eksplorator rozwiązań pokazywał tylko dwa puste foldery po próbie otwarcia pliku rozwiązania. Kiedy skomentowałem sugerowane linie ProjectGuid i ProjectTypeGuids, wtedy mogłem zobaczyć zależności tych projektów w Eksploratorze rozwiązań. Dla mnie była to opcja wysokiego zwrotu z niskim ryzykiem, ponieważ mogłem łatwo cofnąć te zmiany. Dzięki!
JohnH,
26

Edytuj plik .csproj lub vbproj. Znajdź i zamień te wpisy

<UseIIS>true</UseIIS> by <UseIIS>false</UseIIS>
<UseIISExpress>true</UseIISExpress> by <UseIISExpress>false</UseIISExpress>
jcmordan
źródło
1
Musiałem także zmienić DevelopmentServerPort na wartość inną niż 80.
JoshNaro
1
A jeśli nie możesz znaleźć ustawień w pliku csproj. Otwórz plik .csproj.user i zrób to tam.
devzero
10

W moim przypadku ten problem był spowodowany zerwanymi powiązaniami IIS. W szczególności moje wiązanie „http” zostało usunięte. Ponowne odtworzenie rozwiązało problem.

Roger Lipscombe
źródło
Wystąpił bardzo podobny problem. Wydaje mi się, że moje wiązanie HTTP <IISUrl>zmieniło swoją nazwę pewnego dnia -_- Ustawienie pliku projektu nie uległo zmianie (dziękuję SVN za potwierdzenie mojej pamięci i mojego zdrowia psychicznego), ale w jakiś sposób zmieniło się wiązanie iis. Naprawiono to i rzut był ładowany od razu.
Patrick M
Pamiętaj również, aby sprawdzić, czy z jakiegoś powodu zmieniłeś nazwę sni / hosta strony docelowej. To spowodowało błąd w moim przypadku.
Juarola,
5

Spróbuj otworzyć program Visual Studio z uprawnieniami administratora. W moim przypadku dało to dostęp do strony IIS i sprawiło, że ten błąd zniknął. Byłem wtedy w stanie przełączyć projekt na korzystanie z IIS Express, który nie wymaga uprawnień administratora.

kad81
źródło
5

To działało dla mnie: -
Niech wszystkie twoje strony IIS wskazują tylko localhost (wszystkie nieprzypisane)

wprowadź opis zdjęcia tutaj

JerryGoyal
źródło
5

Jeśli łączysz się przez TFS, otwórz plik project.csproj.user i sprawdź

<UseIISExpress>false</UseIISExpress>

i zmień to na true.

<UseIISExpress>true</UseIISExpress>
Patrick Dengler
źródło
Chociaż uważam, że jest to bardziej obejście problemu niż faktyczne rozwiązanie, podniosłem go, ponieważ rozwiązało to moje bezpośrednie zaniepokojenie.
Nandun
Ładnie działało :)
Hammad Sajid
4

Możesz załadować projekt bez ustawiania wartości atrybutu UseIIS na true. Wystarczy wykonać następujące kroki:

W pliku mywebproject.csproj--

Usuń znacznik <IISUrl> http: // localhost / MyWebApp / </ IISUrl> i zapisz plik. Aplikacja automatycznie przypisze mu domyślny port.

Yogesh Gangwar
źródło
4

Nie uwierzysz, startstudio wizualne jako Administrator

jak wynika z wiadomości

Nie można znaleźć serwera sieci Web „ http: // localhost / MyWebApp ”.

nie można znaleźć, ponieważ może it has no privileges to see it

więc Just restartstudio graficzne jako Administrator

Basheer AL-MOMANI
źródło
3

W moim przypadku chciałem przejść z http na https, więc usunąłem http z IIS. W moim pliku .csproj.user stwierdziłem, że nadal mam:

<IISUrl>http://localhost/</IISUrl>

Więc zmieniłem to na:

<IISUrl>https://localhost/</IISUrl>
Njaal Gjerde
źródło
2

W moim przypadku mogłem otworzyć rozwiązanie w trybie offline, po prostu uruchamiając polecenie:

iisreset
Conrado Fonseca
źródło
2

W przypadku użytkowników Win8, jeśli wykonasz kroki w zaakceptowanej odpowiedzi, konsola wyrzuca ci komunikat: „nie będziesz używać wiersza poleceń do wykonania tego polecenia” (parafrazowanie). Zamiast tego uzyskaj dostęp do programów i funkcji za pomocą Panelu sterowania (lub Windows + R> appwiz.cpl), kliknij „Włącz lub wyłącz funkcje systemu Windows” i upewnij się, że masz zainstalowane następujące elementy:

Internet Information Services
  > World Wide Web Services
    > Application Development Features
      > ASP.NET 4.5

Spowoduje to również sprawdzenie wielu innych opcji. Gdy tylko zainstalowałem te funkcje i uruchomiłem VS2012 z podwyższonymi uprawnieniami, udało mi się pomyślnie uruchomić moją aplikację.

Scott Silvi
źródło
2

Dzieje się tak ze mną, gdy próbowałem otworzyć projekt z pliku .csproj, ale mi się to udało, otwierając projekt z VS:

Plik> Otwórz> Witryna sieci Web

i wybierz katalog, który zawiera mój projekt.

mshwf
źródło
1

Też miałem ten błąd. Myślałem, że wszystko jest skonfigurowane poprawnie, ale odkryłem, że brakuje jednej rzeczy: nazwy hosta, której użyłem w moim projekcie, nie można (jeszcze) rozwiązać.

Ponieważ moja aplikacja określa nazwę bieżącego klienta na podstawie nazwy hosta, użyłem nazwy hosta jak na clientname.mysuperapp.localpotrzeby programowania. Kiedy dodałem nazwę hosta programistycznego do mojego hostspliku, projekt można ponownie załadować. Oczywiście i tak musiałem to zrobić, ale nie sądziłem, że VS sprawdzi nazwę hosta przed załadowaniem projektu.

Fero
źródło
1

Sprawdź, czy IIS Express jest zainstalowany. Jeśli brakuje IIS Express, Visual Studio może odrzucić to ustawienie <UseIISExpress>false</UseIISExpress>i nadal szukać ekspresu.

Thea
źródło
1

w moim przypadku upewnij się, że masz „domyślną” stronę internetową

rysował
źródło
1

W moim przypadku „Domyślna witryna sieci Web” w IIS nie miała powiązania dla hosta lokalnego na porcie 80. Powinieneś mieć powiązanie dla dowolnej wartości w pliku .csproj.

Dan Mirescu
źródło
1

Naprawiłem to po prostu ponownie instalując IIS Express po pobraniu z poniższego linku:

https://www.microsoft.com/en-us/download/confirmation.aspx?id=48264

Mateusz
źródło
1
To nie daje odpowiedzi na pytanie. Gdy zdobędziesz wystarczającą reputację , będziesz mógł komentować dowolny post ; zamiast tego podaj odpowiedzi, które nie wymagają wyjaśnienia od pytającego . - Z recenzji
FluffyKitten
@FluffyKitten Miałem ten sam błąd co OP, wypróbowałem wszystkie pozostałe odpowiedzi i nic nie działało bez ponownej instalacji IIS Express. Uważam więc, że to moja odpowiedź na pytanie PO. Ponownie zainstaluj IIS.
Matthew
Twoja odpowiedź została oflagowana jako niska jakość i przechodzi proces recenzji (zwróć uwagę na „Z recenzji” na końcu komentarza). Chociaż może to działać, ponowna instalacja oprogramowania jest opcją ostateczną, gdy nic innego nie działa i nie jest konkretnym rozwiązaniem problemu tego PO.
FluffyKitten
Jeśli jest to opcja ostateczna, gdy nic innego nie działa - i według Ajay2707 nie ma możliwości, aby żadna z pozostałych odpowiedzi nie działała na jakąś biedną duszę - wtedy pomyślałbym, że ta odpowiedź może być przydatna. Jak można określić odpowiedź jako niskiej jakości, jeśli może to być jedyna rzecz, która działa u niektórych osób? Wspieram cię Ajay2707. Dziękujemy za poświęcenie czasu na wniesienie wkładu do społeczności.
nardnob
Inb4 ta rozmowa została przeniesiona / usunięta jako niskiej jakości. viva la odporność !!
nardnob
0

W moim przypadku adres URL podany w pliku csproj był niepoprawny.

Musiał być poprzedzony www.

Dokonałem zmian, zapisałem plik, a projekt ładował się dobrze.

Patrick Fischer
źródło
0

Wpadłem na ten problem, kiedy <ProjectTypeGuids>element pliku .csproj zawarte GUID projektu badanej jednostki: {3AC096D0-A1C2-E12C-1390-A8335801FDAB}.

Usunięcie go sprawiło, że projekt został załadowany bez problemów.

MvdD
źródło
0

Dla użytkowników DNN moim problemem było to, że potrzebowałem powiązania dla dnndev.me na porcie 80. Mam wiele instalacji, które działają na różnych portach, a VS wymaga, aby ten konkretny adres URL istniał na porcie 80 (nie 86 jak mój).

Mickers
źródło