关于.net:如何防止IIS默认站点web.config文件被虚拟目录继承?

关于.net:如何防止IIS默认站点web.config文件被虚拟目录继承?

How do you prevent the IIS default site web.config file being inherited by virtual directories?

我在默认IIS站点的web.config文件中具有以下代码。

1
2
3
<httpModules>
   
</httpModules>

然后,当我设置并浏览到虚拟目录时,出现此错误

无法加载文件或程序集"图表"或其依赖项之一。系统找不到指定的文件。

虚拟目录正在从默认的web.config继承模块。

如何停止这种继承?


我找到了答案。将HttpModule节package在位置标记中,并将InheritedInChildApplications属性设置为false。

1
2
3
4
5
6
7
<location path="." inheritInChildApplications="false">
  <system.web>
    <httpModules>
     
    </httpModules>
  </system.web>
</location>

现在,任何虚拟目录都不会继承此位置部分中的设置。

@GateKiller这不是另一个网站,它是一个虚拟目录,因此会发生继承。

@petrich我已经使用<remove />命中和错过结果。我必须记住将其添加到每个虚拟目录中,这很麻烦。


将以下内容添加到虚拟目录的web.config文件中:

1
2
3
<httpModules>
    <remove name="ChartStreamHandler"/>
</httpModules>

根据Microsoft,其他网站不会继承默认网站的设置。您是不是要编辑默认的web.config,它位于与machine.config相同的文件夹中?


推荐阅读