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


9

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

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

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

有什么办法可以解决此错误,以便我可以将相对物理路径用作网站的根目录?

Answers:


6

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


1
例如,如果在分支时Vdir可以相对于配置文件(可以检入源代码管理)相对于开发人员来说是很好的选择。有关如何执行此操作的任何想法?
PilotBob 2015年

3
不幸的是,当前版本的IIS不支持相对路径,因此最干净的解决方案是在每台计算机上使用相同的路径。如果必须在不同的机器(我假设为开发机器)上具有不同的路径,则可以尝试环境变量。创建一个系统环境变量,以便IIS可以使用它,并将其用作单个系统上路径的根。
Scott Forsyth-MVP

2
似乎支持某些环境变量,例如<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
Uwe Keim

@UweKeim是的,这确实适用于当前版本的IIS。IIS 10现在在physicalPath中支持变量。请注意,%IIS_SITES_HOME%用于IIS Express。完整版本的IIS中不存在该变量。但是,其他系统变量也可以工作。
Scott Forsyth-MVP
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.