IIS 7.5 (Express) applicationhost.config: ¿Puede la ruta física de virtualDirectory ser una ruta relativa?

9

Estoy configurando un sitio applicationhost.configpara IIS 7.5 Express:

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

Descubrí que especificar rutas relativas como se muestra no parece funcionar y dará lugar a un HTTP 500.19 Internal Server Error. IIS informa además de un código de error 0x8007007bque, después de buscar en Google, parece indicar una sintaxis de ruta de archivo no válida.

¿Hay alguna forma de evitar este error, de modo que pueda usar la ruta física relativa para la raíz de mi sitio?

stakx
fuente

Respuestas:

6

Lamentablemente no. Ese debe ser un camino físico completo. Mientras no planee cambiar la ruta de su sitio con frecuencia, una ruta estática no debería ser un problema. Si cambia su ruta a menudo a diferentes instancias del sitio, es posible que desee considerar el uso de appcmd para escribir el cambio de modo que obtenga todas las subcarpetas.

Scott Forsyth - MVP
fuente
1
Sería bueno para el desarrollador, por ejemplo, cuando se bifurca si el Vdir podría ser relativo al archivo de configuración que se puede verificar en el control de origen. ¿Alguna idea sobre cómo hacer esto?
PilotBob
3
Desafortunadamente, las rutas relativas no son compatibles con las versiones actuales de IIS, por lo que la solución más limpia es usar la misma ruta en cada máquina. Si debe tener diferentes rutas en diferentes máquinas (supongo que máquinas de desarrollo), entonces puede probar una variable de entorno. Cree una variable de entorno del sistema para que esté disponible para IIS y úsela para la raíz de la ruta en los sistemas individuales.
Scott Forsyth - MVP
2
Parece que algunas variables de entorno son compatibles, por ejemplo <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />.
Uwe Keim
@UweKeim Tienes razón, esto funciona con las versiones actuales de IIS. IIS 10 admite variables en el PhysicalPath ahora. Tenga en cuenta que% IIS_SITES_HOME% es para IIS Express. Esa variable no existe en la versión completa de IIS. Sin embargo, otras variables del sistema funcionan.
Scott Forsyth - MVP