【问题标题】:issues with httpmodule regarding session etc关于会话等的httpmodule问题
【发布时间】:2011-10-27 23:36:07
【问题描述】:

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

从 httpmodule 的调试中,我发现该模块被调用为 ScriptResource.axd 即。它在调用它时运行。有什么办法可以防止这种情况或“将其关闭”?我想让模块为我的一些 httphandlers、.asmx 服务和 aspx 页面请求运行,但不希望为 scriptresource 处理程序调用开销。

其次,会话状态在 HttpModules 中是否可用,如果是,它在哪些事件中可用?

【问题讨论】:

  • 对于第一部分,您可以检查模块中的 URL,如果它与某些 url/请求匹配则返回。我不确定在设置模块以忽略某些请求时是否有配置选项。
  • 请参阅此问题以了解 HttpModule 中的会话问题。 stackoverflow.com/q/276355/292060

标签: c# session iis-7 .net-4.0 httpmodule


【解决方案1】:

如前所述,HttpModules 已为应用程序中的所有请求启用,因此您唯一能做的就是检查 HttpModule 中的传入 url,然后据此决定采取什么行动。

AcquireRequestState 事件期间加载会话状态,因此从HttpModule 中检查它的最早机会是PostAcquireRequestState 事件。会话状态在引发ReleaseRequestState 事件时保持不变,因此您对会话所做的任何更改都应在该点之前进行。因此,您可以在这两个事件之间的HttpApplication pipeline 期间随时访问会话状态

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-26
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    相关资源
    最近更新 更多