我有一个默认顶级网站域名.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 ReWritten而无需用户的知识?
答案 0 :(得分:1)
不,你不能阻止它继承,(InheritInChildApplications = False修复不能覆盖足够的顶级Web.Config来解决这个问题),但你可以删除顶级.Net 2应用程序并重定向请求。
使用URL Rewrite模块将从顶级Web应用程序发出的请求路由到IIS中的Web站点下的虚拟目录中的另一个“Web应用程序”,从顶级Web.Config中删除几乎所有内容。
没有顶级.Net 2应用程序对虚拟目录中的.Net 4应用程序没有任何意义可以继承。
之前的IIS设置:
网站 - .net 2 app“root”
|
| - .net 2 app“one”
| - .net 4 app“two”(不工作!!)
IIS设置之后:
网站 - 在虚拟目录中重写对.net 2应用程序的请求
|
| - .net 2 app“one”
| - .net 4 app“two”
| - .net 2 app“root”