IIS7 - 虚拟目录的父路径的行为与以前的版本不同

IIS7 - 虚拟目录的父路径的行为与以前的版本不同

我正在将在 IIS 5 上运行的 Web 服务器迁移到 IIS 7。我注意到两者之间的虚拟目录行为有所不同。

我有一个位于 c:\inetpub\SiteName 的站点。此站点包含一个指向 c:\virtualdirs\bob 的虚拟目录“bob”。bob 文件夹 (script.asp) 中有一个脚本,其中包含以下内容:

<!--#include virtual="../index.asp"-->

当我尝试通过以下方式运行脚本时,我注意到 IIS5 和 IIS7 之间的行为有所不同:http://站点名称/bob/script.asp

IIS5 引用站点的父路径,并导入 c:\inetpub\SiteName\index.asp。IIS7 引用虚拟目录的父文件夹,并查找 ac:\virtualdirs\index.asp(不存在)。执行 Server.MapPath 的 Response.Write 可确认这一点。

有没有办法让 IIS7 在这方面表现得像 IIS5?不幸的是,将 index.asp 及其逻辑移到 virtualdirs 文件夹中不是一个选项,因为虚拟目录将在许多站点(具有不同的 index.asp)之间共享。

谢谢。

答案1

在其他论坛上回答: http://forums.iis.net/p/1168652/1946977.aspx

几乎可以肯定 IIS 版本之间的功能发生了变化。纠正它的唯一方法是将对代码的所有引用从“..”修改为“/”(站点根目录),以与虚拟目录相对应。

显然这不是最佳解决方案,但现在必须这么做。

相关内容