在我的 web.config<system.webServer>
部分中,我添加了我的自定义模块:
<modules>
<add name="MyCustomModule" type="MyAssembly.MyCustomModule, MyAssembly" />
</modules>
然后在我的 HTTP 处理程序中,我遍历模块列表:
var allModules = HttpContext.Current.ApplicationInstance.Modules;
for( int i = 0; i < allModules.Count; i++ ) {
Trace(allModules.GetKey(i));
}
我得到了这个清单:
__ASP_IntegratedDynamicModule_Shim
OutputCache
Session
FormsAuthentication
DefaultAuthentication
RoleManager
AnonymousIdentification
Profile
UrlMappingsModule
ServiceModel-4.0
UrlRoutingModule-4.0
ScriptModule-4.0
MyCustomModule <<<<<<<<<<<<<My Module
__DynamicModule_System.Web.WebPages.WebPageHttpModule, System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35_2d022434-c92d-4088-bfa6-3478c4fc129d
显然,我的模块是在所有内置模块之后注册的,除了 WebPageHttpModule 是在它之后注册的。
这是怎么发生的?我怎么可能确保我自己的模块最后注册?