8

stiamo eseguendo alcuni dei nostri siti come progetti di siti Web in Visual Studio. Abbiamo recentemente aggiornato a VS2015. Ora non possiamo aggiungere directory virtuali a nuovi siti web.Visual Studio 2015 - Aggiunta di directory virtuale non possibile

Abbiamo già provato a fare clic con il pulsante destro del mouse su "Aggiungi nuova directory virtuale" in cui viene visualizzato un messaggio di errore oltre a modificare il file applicationhost.config nella cartella Progetto.

Si tratta di un bug con VS2015 o esiste un modo per creare le directory? Non c'è alcun problema con il progetto che è già stato eseguito su IIS Express prima di passare a VS2015.

PS: so della filettatura here ma non aiuta.

risposta

6

Sito Web FileSystem su IIS Express.

  1. Aprire VS2015 (Tasto destro del mouse e selezionare Esegui come amministratore ).
  2. Fare clic su File> Nuovo> Sito Web ...
  3. Nella finestra di dialogo Nuovo sito Web, fare clic sul pulsante Sfoglia ....
  4. Selezionare IIS locale nel riquadro di sinistra. E selezionare Siti IIS Express nel riquadro di destra.
  5. Ci sono 4 pulsanti nella parte destra in alto. Fare clic sul pulsante Crea nuovo sito.
  6. Nome e clic su Aperto. Ciò selezionerà HTTP in posizione Web.
  7. Fare clic su OK.
  8. Quindi chiudere la soluzione.
  9. Aprire applicationhost.config da Users \\ Documents \ IISExpress \ config folder. Puoi aprire nel blocco note.
  10. Trova il tuo sito web nella sezione . E modificare il percorso fisico all'interno (virtualDirectory path = "/" physicalPath = "C: \ WebApp \ WebSite1"). Scrivi il percorso del tuo progetto Web esistente.
  11. Salvare e chiudere il file applicationhost.config.
  12. Run VS2015 (Esegui come amministratore).
  13. Fare clic su File> Apri> Sito Web ...
  14. Nella finestra di dialogo Apri sito Web, selezionare IIS locale dal riquadro sinistro.
  15. Selezionare il sito in Siti IIS Express e fare clic su Aperto.
  16. Clicca Sito Web menu e Nuova directory virtuale ...
  17. Dare Alias ​​nome e il percorso della cartella e fare clic su OK.

Ora è possibile crearlo senza errori.

2

alternativa, se si dispone di file di soluzione ".sln", quindi seguire le istruzioni:

  1. Utilizzare il Blocco note aprire il file di soluzione.

  2. Trovare la riga inizia con progetto ("{

Ad esempio:

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

poi cambiare per essere:

0.123.

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

e aggiungere nuove proprietà

SlnRelativePath = "C: \ WebProject1 \"

entro ProjectSection (WebsiteProperties)

Nell'esempio, il ProjectSection da

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 

divento questo fine:

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

Questa risposta ha funzionato per me, ma ho dovuto eliminare il file applicationhost.config ted nella cartella .vs nascosta utilizzata da IIS Express per determinare la struttura dell'applicazione. Una volta eseguito il sito Web, IIS Express ha configurato l'applicazione con la directory virtuale corretta. Grazie! – Chartreugz

5

Nessuna delle risposte sopra ha funzionato per me, io non sono ancora certo perché funziona, ma ecco cosa ho fatto:

Modificare il file ApplicationHost.config che risiede nel progetto:

Originariamente sembrava che questo:

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

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

ho dovuto aggiungere un'altra voce percorso di applicazione:

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

Così si finisce per guardare In questo modo:

<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

Funziona perfettamente per me. Molte grazie! Ho dovuto abilitare le cartelle hiddden, poi ho visto la cartella ".vs" e poi ho modificato il file "**. Vs \ config \ applicationhost.config **" come descritto nella risposta. –