带有多个web.config文件的ASP.NET 3.5应用程序(IIS 7)

时间:2010-11-28 07:47:55

标签: asp.net iis-7 web-config url-rewriting

我们正在开发一个可以创建更多Web应用程序的Web应用程序。

每个Web应用程序都必须获取Url Rewrite规则(URL REWRITE MODULE 2.0)。

据我所知,没有修改web.config文件就没有办法添加这些规则(我是对的吗?)。

所以我的计划是使用多个web.config部分文件。一个主要的.config文件,每个应用程序有很多.config文件(每个文件都包含它的web应用程序url重写规则)。

这种方式听起来有点混乱,但我想不出其他任何事情,欢迎提出建议。

那么可以为根应用程序使用非常多的web.config文件吗?

提前致谢,Gal。

2 个答案:

答案 0 :(得分:1)

以下标签可以解决问题。 当我在我的网站上运行两个不同的应用程序使用两个web.config文件时,没有这个标签是我遇到问题的主要原因。

**<location path="." inheritInChildApplications="false">**
   <system.web>
     <!-- ... -->
   </system.web>
**</location>**

答案 1 :(得分:0)

每个应用程序都必须有一个完整的web.config而不是部分,如果你选择net 4

诀窍是在web.config中的另一个上使用很多删除命令,并删除不得在此使用的父设置。

例如,如果在主根上有一个您没有在其他树上使用它的模块,则在所有其他web.config上使用remove命令将其删除。特别是一个Bin上的模块,而不是其他目录bin上的模块。

<httpModules>
  <remove name="TheHttoModuleNotNeedHere" />
  <remove name="AnonymousIdentification" />

  ... add here your other modules for that directory...
</httpModules>

remove命令几乎适用于config上的所有会话。

你可以让它成功,我已经做到了,但是要找到所有冲突/不必要的配置并将其删除它需要做很多工作。

对于其他一些会话,还有清除命令。例如,在角色管理器上,您可以清除所有内容并添加新内容。

<roleManager enabled="true" ...>
  <providers>
    <clear />
    <add name="MyName" ... type="System.Web.Security.SqlRoleProvider" />
  </providers>

希望这个帮助可以作为使其发挥作用的提示。