IIS 7.5 (Express) applicationhost.config:virtualDirectory 的 physicalPath 可以是相对路径吗?

sta*_*akx 9 configuration path iis-7.5 xml virtual-directory

我正在applicationhost.config为 IIS 7.5 Express配置一个站点:

<site name="default" id="1" serverAutoStart="true">
    <application path="/">
        <virtualDirectory path="/" physicalPath="%IIS_BIN%\..\Somewhere\Else" />
                                            <!-- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -->
    </application>
    ...
</site>
Run Code Online (Sandbox Code Playgroud)

我发现指定所示的相对路径似乎不起作用,并且会导致 HTTP 500.19 Internal Server Error. IIS 进一步报告错误代码0x8007007b,经过一些谷歌搜索后,似乎表明文件路径语法无效。

有什么办法可以解决这个错误,以便我可以为我的站点的根使用相对物理路径?

Sco*_*MVP 6

抱歉不行。那必须是完整的物理路径。只要您不打算经常更改站点路径,静态路径应该不成问题。如果您经常将路径更改为不同的站点实例,您可能需要考虑使用 appcmd 编写更改脚本,以便获取所有子文件夹。

  • 不幸的是,当前版本的 IIS 不支持相对路径,因此最干净的解决方案是在每台机器上使用相同的路径。如果您必须在不同的机器上有不同的路径(我假设是开发机器),那么您可以尝试一个环境变量。创建一个系统环境变量,以便 IIS 可以使用它,并将其用于各个系统上路径的根目录。 (3认同)
  • 不过,似乎支持一些环境变量,例如`&lt;virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" /&gt;`。 (2认同)