我创建了一个自定义的http模块,并希望将此模块添加到Web配置中.Web应用程序是一个包含多个"子应用程序"的项目.子应用程序只是一个文件夹,在该文件夹中它有自己的web.config.我这样做是因为每个应用程序都有自己的应用程序相关内容,样式表,配置等.
现在我创建了一个自定义的http模块.将此添加到根web.config时,模块正常工作.将http模块配置添加到目录级web.config(例如/Applications/MyApplication/web.config)时,模块不再被初始化.即使msdn声明HttpModules配置元素也在目录级别工作.谁知道如何解决这个问题?
Aak*_*shM 15
为了呼应马文斯密特的评论,似乎配置<modules>
下,<location>
在web.config
根本不工作 -以这种方式指定的任何模块不被调用.
您可以做的是在根级别指定模块,并由a控制appSetting
,可以根据需要分层指定和覆盖:
<configuration>
<appSettings>
<add key="UseCustomModule" value="false"/>
</appSettings>
<location path="MyFolder">
<appSettings>
<add key="UseCustomModule" value="true"/>
</appSettings>
<system.webServer>
<modules>
<!-- CANNOT add module at this level, hence the overridden appSetting -->
</modules>
</system.webServer>
</location>
<system.webServer>
<modules>
<add name="CustomnModule" type="MyApplication.CustomModule" />
</modules>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
然后在代码中CustomModule
:
private static bool ModuleEnabled()
{
bool appSetting;
if (!bool.TryParse(ConfigurationManager.AppSettings["UseCustomModule"],
out appSetting))
appSetting = false;
return appSetting;
}
Run Code Online (Sandbox Code Playgroud)
ASP.NET将UseCustomModule
确保我们当前位置的适当值是我们读取的值.
归档时间: |
|
查看次数: |
3976 次 |
最近记录: |