asp.net - ASP.NET(经典):自动注册处理所有请求(包括非托管)的 Httpmodule
问题描述
我创建了一个自定义的 HttpModule,并试图确保它自动注册(这样用户就不必求助于 \<<modules> 元素)。为了做到这一点,我首先添加PreApplicationStartMethod
到包含模块的程序集中:
[assembly: PreApplicationStartMethod(typeof(AutoRegisterHttpModule), nameof(AutoRegisterHttpModule.Start))]
然后,我使用以下代码注册了模块:
public static class AutoRegisterHttpModule {
public static void Start() {
HttpApplication.RegisterModule(typeof(GrmMagickModule));
}
}
不幸的是,我注意到这不会产生与使用 <add> 元素相同的结果:
<modules>
<add type="Grm.Magick.Resizing.GrmMagickModule, Grm.Magick.Resizing" name="GrmMagick"/>
</modules>
当我这样做时,我的模块将处理所有请求。但是,当我自动注册我的模块时不会发生这种情况。在这些情况下,我需要更改模块声明,使其看起来像这样:
<modules runAllManagedModulesForAllRequests="true"></modules>
有机会通过自动注册获得相同的结果吗?
谢谢。
解决方案
推荐阅读
- python - 使用数据属性刮取元素的内容 - Python BeautifulSoup
- python - 将具有 2 个坐标的 Matplotlib Ray 扩展到图表边缘
- javascript - 在不影响游戏坐标的情况下居中画布元素
- sql - 如何使用 VBA 在 Excel 上“绕过”“受密码保护的 SQL Server 数据库”弹出窗口?
- google-sheets - 如何根据一周中的某一天设置条件格式?
- python - 为什么 np.linalg.eig() 和 np.linalg.eigh() 返回不同的特征向量?
- android - 属性委托必须有一个 'getValue(Nothing?, KProperty*>)' 方法
- google-sheets - 为什么 vlookup 搜索的是“44221”而不是“2021-01-25”?
- flutter - Flutter:检查文本字符串是否在网页中?
- html - 如何删除浏览器底部的意外滚动条