ASP.NET(经典):自动注册处理所有请求(包括非托管请求)的Httpmodule

时间:2019-05-24 15:49:20

标签: 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));
    }
}

不幸的是,我注意到这不会产生与使用元素相同的结果:

<modules>
 <add type="Grm.Magick.Resizing.GrmMagickModule, Grm.Magick.Resizing" name="GrmMagick"/>
</modules>

执行此操作时,我的模块将处理所有请求。但是,当我自动注册模块时,不会发生这种情况。在这些情况下,我需要更改模块声明,使其看起来像这样:

<modules runAllManagedModulesForAllRequests="true"></modules>

是否有机会通过自动注册获得相同的结果?

谢谢。

0 个答案:

没有答案