IIS 7.5 (Express) applicationhost.config: può un PhysicalPath di virtualDirectory essere un percorso relativo?


9

Sto configurando un sito applicationhost.configper IIS 7.5 Express:

<site name="default" id="1" serverAutoStart="true">
    <application path="/">
        <virtualDirectory path="/" physicalPath="%IIS_BIN%\..\Somewhere\Else" />
                                            <!-- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -->
    </application>
    ...
</site>

Ho scoperto che specificare percorsi relativi come mostrato non sembra funzionare e porterà a un HTTP 500.19 Internal Server Error. IIS riporta inoltre un codice di errore 0x8007007bche, dopo aver cercato su Google, sembra indicare una sintassi del percorso del file non valida.

Esiste un modo per aggirare questo errore, in modo da poter utilizzare il percorso fisico relativo per la radice del mio sito?

Risposte:


6

Sfortunatamente no. Deve essere un percorso fisico completo. Finché non prevedi di cambiare spesso il percorso del tuo sito, un percorso statico non dovrebbe essere un problema. Se cambi spesso il tuo percorso in diverse istanze del sito, potresti prendere in considerazione l'utilizzo di appcmd per eseguire lo script della modifica in modo da ottenere tutte le sottocartelle.


1
Sarebbe bello per dev, ad esempio quando si ramifica se il Vdir potrebbe essere relativo al file di configurazione che potrebbe essere controllato nel controllo del codice sorgente. Qualche idea su come fare questo?
PilotBob,

3
I percorsi relativi non sono supportati con le versioni correnti di IIS, sfortunatamente, quindi la soluzione più pulita è utilizzare lo stesso percorso su ogni macchina. Se devi avere percorsi diversi su macchine diverse (suppongo macchine dev), puoi provare una variabile d'ambiente. Creare una variabile di ambiente di sistema in modo che sia disponibile per IIS e utilizzarla per la radice del percorso sui singoli sistemi.
Scott Forsyth - MVP,

2
Sembra che siano supportate alcune variabili d'ambiente, ad es <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />.
Uwe Keim,

@UweKeim Hai ragione, questo funziona con le versioni correnti di IIS. IIS 10 supporta ora le variabili in physicalPath. Tieni presente che% IIS_SITES_HOME% è per IIS Express. Tale variabile non esiste nella versione completa di IIS. Tuttavia, altre variabili di sistema funzionano.
Scott Forsyth - MVP
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.