我们在 IIS 中为我们的 web 应用程序进行了典型的设置,其中为不同的项目提供了虚拟目录:
- www.webapp.com (网站)
- project1(虚拟目录)
- project2(虚拟目录)
- project3(虚拟目录)
Web 应用程序具有登录.aspx作为默认文档,所有虚拟目录也一样。现在,我需要一个不同的默认文档 (index.aspx)仅适用于 www.webapp.com 网站。虚拟目录将继续使用 login.aspx,并且仅此而已。
编辑:所有虚拟目录都指向同一个物理目录。如果我更改 www.webapp.com 的默认文档,则所有底层虚拟目录也会更改。
这在 IIS 6 中很容易,但在 IIS 7.5 中我无法实现这一点。
我想我需要改变应用程序主机配置通过添加位置标签,但我不知道如何开始。有人能给我指明正确的方向吗?
谢谢! 斯泰因
答案1
为此,您需要修改 ApplicationHost.config 文件。该文件当前位于 %windir%\system32\inetsrv\config 目录中。
文档末尾的“位置”部分需要根据您的应用默认文档进行相应修改。例如 -
<location path="Default Web Site/App">
<system.webServer>
<defaultDocument enabled="true">
<files>
<clear />
<add value="Login.aspx" />
</files>
</defaultDocument>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>
<location path="Default Web Site/App/VApp2">
<system.webServer>
<defaultDocument enabled="true">
<files>
<clear />
<add value="LoginPage2.aspx" />
</files>
</defaultDocument>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>
答案2
也许我没有理解你的问题,但它对我来说似乎微不足道。
打开 Internet 信息服务管理器,选择虚拟目录(双击)。在 IIS 部分,打开“默认文档”并设置您的默认文档(或删除一些)。
对所有虚拟目录重复该过程。
更新:
问题:您的虚拟目录(部分)是否指向同一个物理目录?IIS 将 web.config 文件中的信息保存在物理目录中。这可能是您的问题。
解决方法:创建一些逻辑来重定向虚拟目录的请求。或者创建物理目录的副本,以便可以单独设置 web.config 文件。
答案3
是的,最简单(读作:最欺骗性)的配置方法是:
打开功能委派,并禁用站点的默认文档模块的委派(或使其成为只读)。
完成后,GUI 将<location>
在低于您刚刚配置的委派设置的任何级别为您创建标签。