Mam projekt ASP.NET, który korzysta z usług IIS. Witryna usług IIS jest skonfigurowana do używania niestandardowej nazwy hosta powiązania. Plik projektu zawiera następujące ustawienia:
...
<UseIISExpress>false</UseIISExpress>
...
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<UseIIS>True</UseIIS>
<AutoAssignPort>False</AutoAssignPort>
<DevelopmentServerPort>8662</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://custom.host.name/</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl></CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
...
Gdy projekt jest skonfigurowany w taki sposób, mogę uzyskać dostęp do witryny z, http://custom.host.name/
a VS automatycznie dołącza się do procesu roboczego usług IIS podczas debugowania.
Kiedy przeładowuję projekt (przez zamknięcie / ponowne otwarcie rozwiązania lub wyładowanie / przeładowanie w menu kontekstowym projektu), dzieje się coś nieoczekiwanego. Projekt nie ładuje się, (load failed)
jest wyświetlany po prawej stronie nazwy projektu w eksploratorze rozwiązań, a okno komunikatu jest wyświetlane z następującym komunikatem (jest również wyświetlany w oknie Dane wyjściowe):
The URL 'http://custom.host.name/' for Web project 'Some.Asp.Net.Project'
is configured to use IIS Express as the web server but the URL is currently
configured on the local IIS web server. To open this project, you must use
IIS Manager to remove the bindings using this URL from the local IIS web server.
Próbowałem usunąć konfigurację witryny projektu z applicationhost.config
pliku IIS Express , ale to nie pomogło.
Nie napotykam tego problemu podczas mapowania projektu do aplikacji IIS w domyślnej witrynie.
Wersja VS to Ultimate 2012 Update 3.
źródło
UseIISExpress
na false. stackoverflow.com/a/19103452/138938<UseIIS>True</UseIIS>
do<UseIIS>False</UseIIS>
wystarczyły dla mnie też. Dzieki za sugestie!Odpowiedzi:
Otwarcie jako administrator nie rozwiązało problemu. Co ustalone to dla mnie było otwarcie zarówno
.csproj
i.csproj.user
plików oraz zapewnienie, że obajUseIISExpress
ustawionyfalse
.W moim przypadku
.csproj.user
plik przesłaniał.csproj
plik, mimo żeSaveServerSettingsInUserFile
był oznaczonyfalse
.<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <UseIISExpress>false</UseIISExpress> <!-- ... --> </Project>
źródło
Rozwiązanie: usuń
*.csproj.user
plik!źródło
*.csproj.user
nie można edytować*.csproj
Ustawiłem „ SaveServerSettingsInUserFile ” na True i to zadziałało.
<ProjectExtensions> <VisualStudio> <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}"> <WebProjectProperties> <UseIIS>True</UseIIS> <AutoAssignPort>True</AutoAssignPort> <DevelopmentServerPort>50584</DevelopmentServerPort> <DevelopmentServerVPath>/</DevelopmentServerVPath> <IISUrl>http://localhost:50584/</IISUrl> <NTLMAuthentication>False</NTLMAuthentication> <UseCustomServer>False</UseCustomServer> <CustomServerUrl> </CustomServerUrl> <SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile> </WebProjectProperties> </FlavorProperties> </VisualStudio>
Źródło: kliknij tutaj
źródło
podczas korzystania z włączania korzystania z IISexpress, applicationHost.Config (znajdującego się w% userprofile% \ iisexpress \ config), należy zaznaczyć opcję „Zastosuj ustawienia serwera do wszystkich użytkowników (zapisz w pliku projektu)”, aby uniknąć zapisywania ustawień w yourProject.csproj.user
robienie tego jest takie samo jak edycja pliku
<WebProjectProperties> <UseIIS>True</UseIIS> <AutoAssignPort>True</AutoAssignPort> <DevelopmentServerPort>62242</DevelopmentServerPort> <DevelopmentServerVPath>/</DevelopmentServerVPath> <IISUrl>http://localhost:8100/Claims/</IISUrl> <OverrideIISAppRootUrl>True</OverrideIISAppRootUrl> <IISAppRootUrl>http://localhost:8100/Claims/</IISAppRootUrl> <NTLMAuthentication>False</NTLMAuthentication> <UseCustomServer>False</UseCustomServer> <CustomServerUrl></CustomServerUrl> <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> </WebProjectProperties>
project.csproj i pisanie Jeśli włączysz IISExpress i plik applicationHost.config nie zawiera wpisu związanego z ustawieniami twojego projektu, wystarczy nacisnąć przycisk "Utwórz katalog wirtualny" i gotowe !mam nadzieję że to pomoże
źródło
W moim przypadku usunięcie pliku * .csproj.user działało dobrze
źródło
Miałem ten sam problem, dla mnie jedyne, co musiałem zrobić, to otworzyć studio wizualne jako administrator i to rozwiązało problem.
więc po prostu kliknij prawym przyciskiem myszy Visual Studio 2012 i kliknij „Uruchom jako administrator”. mam nadzieję że to pomoże
źródło
U mnie kombinacja obu działała dla Visual Studio 2015 Preview z Windows 7 64 bit:
1. usuń plik * .csproj.user i
2.
<UseIISExpress>false</UseIISExpress>
w Solution File.Kroki do kroku 2: W programie Visual Studio kliknij prawym przyciskiem myszy projekt ==> Zwolnij ===> Edytuj rozwiązanie
źródło
Wystarczy
Skomentuj tę linię w pliku projektu x.csproj
<!--<UseIIS>True</UseIIS>-->
x.csproj: błąd: adres URL „ http: // localhost / x ” dla projektu sieci Web „x” jest skonfigurowany do używania IIS Express jako serwera sieci Web, ale adres URL jest obecnie skonfigurowany na lokalnym serwerze sieci Web usług IIS. Aby otworzyć ten projekt, należy użyć Menedżera usług IIS do usunięcia powiązań używających tego adresu URL z lokalnego serwera sieci Web usług IIS.
źródło
Wylądowałem tutaj, gdy projekt skonfigurowany do korzystania z usług IIS nie ładował się, ponieważ nie mógł znaleźć witryny internetowej (mójprojekt.mojafirma.lokalna) - mimo że witryna wczytuje się poprawnie w mojej przeglądarce.
Rozwiązaniem było upewnienie się, że powiązanie witryny w usługach IIS 7 miało nazwę hosta ustawioną na „mójproject.mycompany.local”. Aby dostać się do powiązań witryny:
Jeśli Twoja witryna również nie ładuje się w przeglądarce internetowej, prawdopodobnie jest tak dlatego, że nie masz odpowiedniego wpisu w pliku hosts:
127.0.0.1 myproject.mycompany.local
źródło
Jeśli projekt jest częścią rozwiązania, otwórz plik rozwiązania (.sln) i edytuj sekcję projektu.
ProjectSection(WebsiteProperties) = preProject UseIISExpress = "false"
U mnie zadziałało.
źródło
Ten problem zrujnował mi dzisiaj dzień w VS 2013. Wypróbowałem wszystkie powyższe, ale nie udało mi się załadować projektu, dopóki nie utworzyłem witryny sieci Web w IIS i nie wypełniłem tej sekcji w pliku .csproj (zwłaszcza w elemencie IISUrl):
<ProjectExtensions> <VisualStudio> <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}"> <WebProjectProperties> <UseIIS>True</UseIIS> <AutoAssignPort>True</AutoAssignPort> <DevelopmentServerPort>81</DevelopmentServerPort> <DevelopmentServerVPath>/</DevelopmentServerVPath> <IISUrl>http://localhost/SomeProject</IISUrl> <NTLMAuthentication>False</NTLMAuthentication> <UseCustomServer>False</UseCustomServer> <CustomServerUrl> </CustomServerUrl> <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> </WebProjectProperties> </FlavorProperties> </VisualStudio>
źródło
Miałem ten sam problem, bieganie jako administrator nie działało dla mnie.
Ustawienie wartości
<UseIIS>True</UseIIS>
false w pliku „.csproj” projektu mogło tymczasowo załadować projekt, ale wartość powracała do True po ponownym uruchomieniu lub zamknięciu rozwiązania.Uzupełniając odpowiedź @Cyrus (która zadziałała dla mnie), aby uzyskać bardziej zgrabną odpowiedź, skupiłem się bardziej na pliku csproj.user projektu i znalazłem dokładne źródło problemu: ustawienie
<UseIISExpress>true</UseIISExpress>
na fałsz, a następnie ponowne załadowanie projektu. działa dobrze, bez usuwania pliku csproj.user. wynik jest taki:<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectView>ProjectFiles</ProjectView> <UseIISExpress>false</UseIISExpress> <IISExpressSSLPort /> <IISExpressAnonymousAuthentication /> <IISExpressWindowsAuthentication /> <IISExpressUseClassicPipelineMode /> <NameOfLastUsedPublishProfile>My Project's Name</NameOfLastUsedPublishProfile> </PropertyGroup>
źródło