web.config继承:<clear>导致<system.webserver> <modules> </modules> </system.webserver> </clear>中的XML分析错误

时间:2012-02-15 14:51:27

标签: asp.net inheritance web-config xml-parsing clear

我正在尝试将一个小的asp.net应用程序添加到我现有网站的子文件夹中。问题是根web.config文件包含破坏我的应用程序的模块。我想阻止/删除Web.config继承。

父web.config

...
<system.webServer>
  ...
  <modules>
    <add name="WwwSubDomainModule" type="BlogEngine.Core.Web.HttpModules.WwwSubDomainModule, BlogEngine.Core" />
    <add name="UrlRewrite" type="BlogEngine.Core.Web.HttpModules.UrlRewrite, BlogEngine.Core" />
    ...
  </modules>
...

我无法在根目录中使用以下位置标记,因为还有其他子文件夹,我执行要继承。孩子有没有办法关闭父母的遗产?

<location path="." inheritInChildApplication="false"> 

Child web.config

...
<system.webServer>
  ...
  <modules>
    <clear/>
  </modules>
...

我尝试使用clear但这导致了一个奇怪的解析错误: &#34; XML解析错误:找不到元素位置:...第1行,第1列:&#34;

如果我为每个模块使用删除,我会取得一些成功。只要我留下至少1个模块。 (与哪一个无关)当我删除最后一个模块时,我得到与clear相同的解析错误。任何人都知道为什么会发生这种错误?有没有其他方法可以消除web.config继承?

1 个答案:

答案 0 :(得分:1)

对我来说,最简单的解决方案就是将应用程序设置为自己的应用程序,因为子文件夹包含一个应用程序,正如您所指的那样。您仍然可以将用户链接回您的其他父应用。只需设置子文件夹即可将所有请求重定向到其他应用程序。这听起来更像是一个建筑问题,但我只是根据少量信息进行猜测。

另一个选项是,如果您的父应用程序在web.config中引用程序集,请将其排除在子应用程序中。

我的最后一个建议是你可能只需要更好地分解源代码和应用程​​序的引用并重新编译。