C# 与httpmodule有关的会话等问题

C# 与httpmodule有关的会话等问题,c#,session,iis-7,.net-4.0,httpmodule,C#,Session,Iis 7,.net 4.0,Httpmodule,我在我的asp.net web应用程序、iis7、.net 4.0等中设置了一个httpmodule。我想解决两个问题 通过对httpmodule的调试,我发现ScriptResource.axd ie会调用该模块。调用该模块时,它会运行。我有什么办法可以阻止它或“关掉它”?我想让模块为我的一些httphandlers、.asmx服务和aspx页面请求运行,但不想为scriptresource处理程序调用模块带来开销 第二,会话状态在HttpModules中可用吗?如果是,它在哪些事件中可用?如

我在我的asp.net web应用程序、iis7、.net 4.0等中设置了一个httpmodule。我想解决两个问题

通过对httpmodule的调试,我发现ScriptResource.axd ie会调用该模块。调用该模块时,它会运行。我有什么办法可以阻止它或“关掉它”?我想让模块为我的一些httphandlers、.asmx服务和aspx页面请求运行,但不想为scriptresource处理程序调用模块带来开销


第二,会话状态在HttpModules中可用吗?如果是,它在哪些事件中可用?

如前所述,
HttpModules
为应用程序中的所有请求启用,因此您唯一能做的就是检查
HttpModule
中的传入url,然后根据该url决定要采取的操作


会话状态在
AcquisiteRequestState
事件期间加载,因此从
HttpModule
检查会话状态的最早机会是
PostAcquireRequestState
事件。会话状态将在引发
ReleaseRequestState
事件时保持,因此对会话所做的任何更改都应在该点之前进行。因此,您可以在这两个事件之间的任何时间点访问会话状态。对于第一部分,您可以检查模块中的URL,如果它与某些URL/请求匹配,则只返回。我不确定在设置模块以忽略某些请求时是否有配置选项。有关HttpModule中的会话问题,请参阅此问题。