如何在IIS7中设置虚拟目录/应用程序,以便它不继承任何web.config设置?

时间:2011-06-01 14:56:51

标签: asp.net asp-classic web-config

我有一个运行良好的ASP.NET / IIS 7网站。现在我想在子文件夹中为站点添加一个经典的ASP应用程序。这是两个完全独立的应用程序。一组用户将使用现有的ASP.NET应用程序 - 一组不同的用户将使用经典的ASP应用程序。所以我继续创建了一个新的文件夹,并在那里复制了经典的ASP应用程序。当我尝试访问经典ASP应用程序的默认页面时,我被重定向到了登录页面(因为我的ASP.NET应用程序中的web.config设置)。所以我将经典ASP应用程序的文件夹转换为应用程序。这照顾了登录问题。但是现在我收到有关我在ASP.NET应用程序中使用的自定义角色提供程序的错误。

我猜我不得不设置我的经典ASP应用程序,以便它不会从主ASP.NET应用程序的web.config继承任何内容。我是否正确地考虑过这个问题?

有没有人对将遗留ASP应用程序添加到ASP.NET站点的最佳方法有任何其他想法?

谢谢, 科里

2 个答案:

答案 0 :(得分:2)

使用clear应该可以工作,但是如果您遇到更多不需要的继承设置,您可以选择通过编辑根目录中的web.config来禁用所有Web配置设置到根文件夹下的所有应用程序文件夹的继承,并插入将inheritInChildApplications属性设置为false的location元素。

<?xml version="1.0"?>
<configuration>
    <location path="." inheritInChildApplications="false"> 
    <!--old web.config elements in root of site -->
    </location>
</configuration>

答案 1 :(得分:0)

经典ASP站点是否有web.config文件?如果不是,我认为你应该能够添加一个。

然后,对于web.config文件中经典ASP网站继承了某些设置的每个部分,您应该能够添加<clear />标记以删除链中进一步定义的任何内容。

因此,例如,要清除自定义角色提供程序,您的经典ASP web.config应如下所示:

<roleManager ...>
    <providers>
        <clear/>
    </providers>
</roleManager>

希望这有帮助。