如何防止虚拟目录继承IIS默认站点的web.config文件?

17

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

<httpModules>
    <add type="MDL.BexWebControls.Charts.ChartStreamHandler,Charts" name="ChartStreamHandler"/>
</httpModules>

当我设置并浏览虚拟目录时,我遇到了这个错误

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

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

如何停止这种继承?

3个回答

20

我找到了答案。将HttpModule部分放在location标签中,并将inheritInChildApplications属性设置为false。

<location path="." inheritInChildApplications="false">
  <system.web>
    <httpModules>
      <add type="MDL.BexWebControls.Charts.ChartStreamHandler,Charts" name="ChartStreamHandler"/>
    </httpModules>
  </system.web>
</location>

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

@GateKiller 这不是另一个网站,而是虚拟目录,所以会发生继承。

@petrich 使用<remove />效果时好时坏。我必须记住将其添加到每个虚拟目录中,这很麻烦。


是的,我也觉得这很痛苦。感谢您在inheritInChildApplications上的提示。 - rpetrich

2
将以下内容添加到虚拟目录的web.config文件中:
<httpModules>
    <remove name="ChartStreamHandler"/>
</httpModules>

-2

根据微软的说法, 其他网站不会继承默认网站的设置。你是指你正在编辑与 machine.config 文件位于同一文件夹中的默认 web.config 文件吗?


我认为提问者在谈论从站点继承的虚拟目录。 - Sam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接