IIS 7.5:具有不同默认文档的虚拟目录

IIS 7.5:具有不同默认文档的虚拟目录

我们在 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>在低于您刚刚配置的委派设置的任何级别为您创建标签。

相关内容