【问题标题】:Can I stop Asp.Net 4 app inheriting .Net 2 parent app's configSections in Web.Config?我可以停止 Asp.Net 4 应用程序在 Web.Config 中继承 .Net 2 父应用程序的 configSections 吗?
【发布时间】:2011-03-23 13:05:06
【问题描述】:

我有一个默认顶级站点为 .Net 2 应用程序的域。并且下面有许多带有不同应用程序的虚拟目录。我无法让 .Net 4 虚拟目录正常工作。

我已阅读:

.net 4.0 inheriting .net 3.5 web.config?

我有一个类似的问题:Disable web.config inheritance? 尚未解决 - 已给出的问题的答案是使用 inheritInChildApplications,它不能绕过 configSections 标签。

我已经设法阻止域的所有 .Net 2 子应用继承顶级 web.config 设置,但对于 .Net 4 应用程序我似乎不能。

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

包裹在父 .Net 2 应用程序的 System.Web 部分,我有

<clear/> 

.Net 4 虚拟目录应用程序的 Web.Config 中的每个部分。

还有其他解决办法吗?也许父 .Net 2 应用程序可以放置在虚拟目录中,而顶级站点请求可以在用户不知情的情况下被 URL 重写?

【问题讨论】:

  • 我认为使用 IIS7 中的 URL 重写模块,我可以重写对域的请求,并使用与所有其他应用程序共同托管的对等点上的子目录中的 .Net 应用程序为它们提供服务在域。这是在 Asp.Net/IIS7 中托管具有多个应用程序的域的正常方式吗?
  • 执行重定向的顶级 .net 2 应用程序仍然有一个 web.config,重写规则所在的位置。 :\ 那还会导致继承问题吗?

标签: iis inheritance iis-7


【解决方案1】:

不,您不能阻止它继承,(InheritInChildApplications=False 修复没有涵盖足够的顶级 Web.Config 来修复此问题),但您可以删除顶级 .Net 2 应用并重定向请求。

使用 URL 重写模块将请求从您的顶级 Web 应用程序路由到 IIS 网站下虚拟目录中的另一个“Web 应用程序”,从顶级 Web.Config 中删除几乎所有内容。

没有顶级 .Net 2 应用程序对于虚拟目录中的 .Net 4 应用程序没有任何意义。

之前的 IIS 设置:
网站 -- .net 2 应用程序“root”
|
|-- .net 2 应用程序“一”
|-- .net 4 应用程序“两个”(不工作!!)

IIS 设置之后:
网站 -- 在虚拟目录中重写对 .net 2 应用程序的请求
|
|-- .net 2 应用程序“一”
|-- .net 4 app“二”
|-- .net 2 应用程序“根”

【讨论】:

    猜你喜欢
    • 2011-09-05
    • 2016-03-11
    • 2012-10-01
    • 2010-10-21
    • 2010-12-07
    • 1970-01-01
    • 2020-08-23
    • 2012-03-21
    相关资源
    最近更新 更多