How do you prevent the IIS default site web.config

2019-03-11 02:11发布

I have the following code in a web.config file of the default IIS site.

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

Then when I setup and browse to a virtual directory I get this error

Could not load file or assembly 'Charts' or one of its dependencies. The system cannot find the file specified.

The virtual directory is inheriting the modules from the default web.config.

How do you stop this inheritance?

3条回答
倾城 Initia
2楼-- · 2019-03-11 02:49

According to Microsoft, other websites do not inherit settings from the Default Website. Do you mean you are editing the default web.config which is located in the same folder as the machine.config?

查看更多
迷人小祖宗
3楼-- · 2019-03-11 02:51

Add the following to the virtual directory's web.config file:

<httpModules>
    <remove name="ChartStreamHandler"/>
</httpModules>
查看更多
迷人小祖宗
4楼-- · 2019-03-11 02:52

I've found the answer. Wrap the HttpModule section in location tags and set the inheritInChildApplications attribute to false.

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

Now any virtual directories will not inherit the settings in this location section.

@GateKiller This isn't another website, its a virtual directory so inheritance does occur.

@petrich I've had hit and miss results using <remove />. I have to remember to add it to every virtual directory which is a pain.

查看更多
登录 后发表回答