8

Niektóre z naszych witryn są uruchamiane jako projekty Witryny sieci Web w Visual Studio. Niedawno uaktualniliśmy do wersji VS2015. Teraz nie możemy dodawać wirtualnych katalogów do nowych stron internetowych.Visual Studio 2015 - dodawanie katalogu wirtualnego nie jest możliwe

Próbowaliśmy już kliknąć prawym przyciskiem myszy "Dodaj nowy wirtualny katalog", gdzie otrzymujemy komunikat o błędzie, a także edytujemy plik applicationhost.config w folderze projektu.

Czy to błąd w VS2015, czy istnieje sposób na tworzenie katalogów? Nie ma problemu z projektem, który już działał w IIS Express przed uaktualnieniem do wersji VS2015.

PS: Wiem o wątku here, ale to nie pomaga.

Odpowiedz

6

Serwis WWW FileSystem do IIS Express.

  1. Otwarte VS2015 (prawym przyciskiem myszy i wybierz opcję Uruchom jako administrator ).
  2. Kliknij opcję Plik> Nowy> Serwis WWW ...
  3. W oknie dialogowym Nowa witryna sieci Web kliknij przycisk Przeglądaj ....
  4. Wybierz Lokalny IIS w lewym panelu. I wybierz IIS Express Sites w prawym panelu.
  5. Na wierzchu znajdują się 4 przyciski po prawej stronie. Kliknij przycisk Utwórz nową stronę.
  6. Podaj nazwę i kliknij Otwórz. To wybierze HTTP w lokalizacji internetowej.
  7. Kliknij OK.
  8. Następnie zamknij rozwiązanie.
  9. Otwórz applicationhost.config od Folder Użytkownicy \\ Dokumenty \ IISExpress \ config. Możesz otworzyć w notatniku.
  10. Znajdź swoją witrynę w sekcjach stron. I zmień wewnętrzną ścieżkę (virtualDirectory path = "/" physicalPath = "C: \ WebApp \ WebSite1"). Napisz ścieżkę do swojego istniejącego projektu internetowego.
  11. Zapisz i zamknij plik applicationhost.config.
  12. Uruchom VS2015 (Uruchom jako administrator).
  13. Kliknij opcję Plik> Otwórz> Witryna sieci Web ...
  14. W oknie dialogowym Otwórz witrynę sieci Web wybierz opcję Lokalne usługi IIS z lewego okienka.
  15. Wybierz swoją witrynę pod Witryn IIS Express i kliknij Otwórz.
  16. Kliknij Web Site menu i New Virtual Directory ...
  17. Daj Nazwa aliasu i ścieżkę foldera, a następnie kliknij przycisk OK.

Teraz możesz go utworzyć bezbłędnie.

2

alternatywna, jeśli masz plik rozwiązanie „.sln”, a następnie wykonaj następujące kroki:

  1. Użyj Notatnika otwórz plik rozwiązania.

  2. W wierszu rozpoczyna Project ("{

Na przykład:

Project (" {E24C65DC-7377-472B-9ABA-BC803B73C61A} ") =" WebProject1" , "WebProject1" ......

Następnie zmień to być:

Project ("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "WebProject1", "http://localhost:12345/WebProject1" ......

I dodać nowy obiekt

SlnRelativePath = "C: \ WebProject1 \"

ciągu ProjectSection (WebsiteProperties)

Na przykład ProjectSection z

Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "WebProject1", "WebProject1", "{6D411253-734E-401A-A049-9620FC55D4FB}" 
    ProjectSection(WebsiteProperties) = preProject 
     UseIISExpress = "true" 
     TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0" 
     Debug.AspNetCompiler.VirtualPath = "/WebProject1" 
     Debug.AspNetCompiler.PhysicalPath = "C:\WebProject1\" 
     Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\WebProject1\" 
     Debug.AspNetCompiler.Updateable = "true" 
     Debug.AspNetCompiler.ForceOverwrite = "true" 
     Debug.AspNetCompiler.FixedNames = "false" 
     Debug.AspNetCompiler.Debug = "True" 
     Release.AspNetCompiler.VirtualPath = "/WebProject1" 
     Release.AspNetCompiler.PhysicalPath = "C:\WebProject1\" 
     Release.AspNetCompiler.TargetPath = "PrecompiledWeb\WebProject1\" 
     Release.AspNetCompiler.Updateable = "true" 
     Release.AspNetCompiler.ForceOverwrite = "true" 
     Release.AspNetCompiler.FixedNames = "false" 
     Release.AspNetCompiler.Debug = "False" 
    EndProjectSection 
EndProject 

stać się to w końcu:

Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "WebProject1", "http://localhost:12345/WebProject1", "{6D411253-734E-401A-A049-9620FC55D4FB}" 
    ProjectSection(WebsiteProperties) = preProject 
     UseIISExpress = "true" 
     TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0" 
     Debug.AspNetCompiler.VirtualPath = "/WebProject1" 
     Debug.AspNetCompiler.PhysicalPath = "C:\WebProject1\" 
     Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\WebProject1\" 
     Debug.AspNetCompiler.Updateable = "true" 
     Debug.AspNetCompiler.ForceOverwrite = "true" 
     Debug.AspNetCompiler.FixedNames = "false" 
     Debug.AspNetCompiler.Debug = "True" 
     Release.AspNetCompiler.VirtualPath = "/WebProject1" 
     Release.AspNetCompiler.PhysicalPath = "C:\WebProject1\" 
     Release.AspNetCompiler.TargetPath = "PrecompiledWeb\WebProject1\" 
     Release.AspNetCompiler.Updateable = "true" 
     Release.AspNetCompiler.ForceOverwrite = "true" 
     Release.AspNetCompiler.FixedNames = "false" 
     Release.AspNetCompiler.Debug = "False" 
     SlnRelativePath = "C:\WebProject1\" 
    EndProjectSection 
EndProject 
+1

Ta odpowiedź zadziałała, ale musiałem usunąć plik lokacji applicationhost.config w ukrytym folderze .vs używanym przez IIS Express do określenia struktury aplikacji. Po uruchomieniu witryny IIS Express skonfigurował aplikację z prawidłowym katalogiem wirtualnym. Dzięki! – Chartreugz

5

Żadna z powyższych odpowiedzi pracował dla mnie, ja nadal nie jestem pewnie, dlaczego to działa, ale oto co zrobiłem:

Zmodyfikować plik ApplicationHost.config który znajduje się w projekcie:

Początkowo wyglądało to tak:

<site name="Website" id="2"> 
    <application path="/" applicationPool="Clr4IntegratedAppPool"> 
     <virtualDirectory path="/" physicalPath="C:\...\MyWebsite" /> 
    </application> 

    <bindings> 
     <binding protocol="http" bindingInformation="*:51005:localhost" /> 
    </bindings> 
</site> 

musiałem dodać kolejny wpis ścieżki aplikacji:

<application path="/mywebsite" applicationPool="Clr4IntegratedAppPool"> 
    <virtualDirectory path="/" physicalPath="C:\...\MyWebsite" /> 
</application> 

Tak to się kończy, patrząc tak:

<site name="Website" id="2"> 
    <application path="/" applicationPool="Clr4IntegratedAppPool"> 
     <virtualDirectory path="/" physicalPath="C:\...\MyWebsite" /> 
    </application> 

    <application path="/mywebsite" applicationPool="Clr4IntegratedAppPool"> 
     <virtualDirectory path="/" physicalPath="C:\...\MyWebsite" /> 
    </application> 

    <bindings> 
     <binding protocol="http" bindingInformation="*:51005:localhost" /> 
    </bindings> 
</site> 
+1

Działa idealnie dla mnie. Wielkie dzięki! Musiałem włączyć foldery hiddden, potem zobaczyłem folder ".vs", a następnie zmodyfikowałem plik "**. Vs \ config \ applicationhost.config **" zgodnie z opisem w twojej odpowiedzi. –