停止从 IIS 7.5 中的父 ASP.NET 应用程序继承 web.config
Posted
技术标签:
【中文标题】停止从 IIS 7.5 中的父 ASP.NET 应用程序继承 web.config【英文标题】:Stop inheriting web.config from parent ASP.NET application in IIS 7.5 【发布时间】:2011-09-05 05:36:07 【问题描述】:我们在 IIS 7.5 中部署了一个 ASP.NET 网站(应用程序 1)。然后在该应用程序下创建另一个 ASP.NET 应用程序(应用程序 2)。但在 App 2 中,我不想从 App 1 继承 web.config
。
如果我尝试在 App 1 中执行以下操作,web.config
:
<location path="." inheritInChildApplications="false">
<configSections>
<!-- etc -->
</configSections>
</location>
报错:
配置错误 配置节“configSections”不能 阅读,因为它缺少一个部分 声明
如果我尝试这样做:
<remove name = "system.web.extensions" />
仍然报同样的错误:
【问题讨论】:
只是补充一下,APP 1(父)使用的是 .net 3.5 框架,而 APP 2(子)使用的是 .net 2.x 框架。 .net 3.5 在 .net 2 框架之上运行。 【参考方案1】:您不能将整个 <configSections>
配置元素包装在 <location path="." inheritInChildApplications="false">
中。这在 ASP.NET 中不受支持(目前)。
来自文档:
SectionInformation.InheritInChildApplications Property
InheritInChildApplications 属性仅适用于 特定位置的配置 设置。
还有:
获取或设置一个值,指示 是否设置 在相关配置部分中指定被继承 通过驻留在 相关子目录 应用。
<configSection>
元素是特殊的,不是配置设置。它们用于定义配置设置的处理程序。
如果您需要从子应用程序中删除冲突配置<section>
,您可以在子应用程序的web.config
文件中使用<remove>
元素执行此操作:
remove
Element forconfigSections
(General Settings Schema)
【讨论】:
实际上我们可以像这对我有用。
对于那些无法使用位置路径解决方案的人,您可能忘记关闭位置元素标签(如果您只是在服务器上的文本编辑器中编辑了 web.config)。这是一个例子:
<configuration>
<configSections>
...
</configSections>
<connectionStrings>
...
</connectionStrings>
<location path="." inheritInChildApplications="false">
<system.web>
...
</system.web>
...
</location>
</configuration>
请注意,configSections 和 connectionStrings 不应位于 location 元素中,这可能是 OP 尝试不起作用的原因。
【讨论】:
【参考方案3】:如果您可以将您的子应用程序部署到单独的网站(同一台机器,不同的端口),Application Request Routing 可能会提供帮助。
解决方法类似于this post。首先,安装ARR。然后,在侦听非标准端口的网站上配置您的“子”应用程序。接下来,在“父”应用程序的网站上配置与“子”应用程序的原始路径匹配的重写规则。让此规则将请求转发到在新端口上侦听的新创建网站。
我会发布一个示例,但我希望通过查看 the post referenced above 来了解其工作原理相当简单。
【讨论】:
这是一个很好的解决方案,例如 Wordpress 虚拟目录,它托管在具有复杂 web.config 的站点的根目录中【参考方案4】:您是否尝试过以下链接:
http://www.kowitz.net/archive/2007/05/16/stopping-asp-net-web-config-inheritance
我可以保证这就像我过去所做的那样工作。
【讨论】:
谢谢。正如我所提到的,这个以上是关于停止从 IIS 7.5 中的父 ASP.NET 应用程序继承 web.config的主要内容,如果未能解决你的问题,请参考以下文章
IIS 7.5 中的 Asp.net mvc 4 应用程序问题
密码保护 IIS 7.5 中的 ASP.NET Web 应用程序
如何确保使用 ASP.NET MVC5 和 IIS 7.5 express 刷新 CSS 文件