Ben*_*per 5 asp.net inheritance web-config xml-parsing
我正在尝试将一个小型 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>
...
Run Code Online (Sandbox Code Playgroud)
我无法在根目录中使用以下位置标记,因为我确实想继承其他子文件夹。有什么办法可以让孩子关闭对父母的继承吗?
<location path="." inheritInChildApplication="false">
Run Code Online (Sandbox Code Playgroud)
子 web.config
...
<system.webServer>
...
<modules>
<clear/>
</modules>
...
Run Code Online (Sandbox Code Playgroud)
我尝试使用clear,但这会导致奇怪的解析错误:“XML 解析错误:找不到元素位置:...行号 1,列 1:”
如果我对每个模块都使用删除,我会取得一些成功。只要我至少留下1个模块。(无论是哪一个)当我删除最后一个模块时,我得到与清除相同的解析错误。任何人都知道为什么会发生这个错误?还有其他方法可以消除 web.config 继承吗?
小智 1
在我看来,最简单的解决方案是将您的应用程序设置为它自己的应用程序,因为正如您所指的,子文件夹包含一个应用程序。您仍然可以将用户链接回您的其他父应用程序。只需设置子文件夹即可将所有请求重定向到其他应用程序。对我来说,这听起来更像是一个架构问题,但我只是根据少量信息进行猜测。
另一个选项是,如果您的父应用程序引用 web.config 中的程序集,请将其排除在子应用程序中。
我的最后一个建议是,您可能只需要更好地拆分应用程序的源代码和引用并重新编译。