【发布时间】:2011-09-02 16:25:22
【问题描述】:
好的,所以我有一个现有的应用程序,我已经向其中添加了一个自定义 HttpModule。我在 Init() 方法中注册了两个事件(PreRequestHandlerExecute 和 PostRequestHandlerExecute)。每个“正常”请求都会调用 HttpModule。但不是我创建了一个包含一些 WebMethods 的 .aspx,这些 WebMethods 被调用用于 ajaxifying 一些 UI 组件。 WebMethod 被很好地调用,但问题是我的 HttpModule 在访问 WebMethod 时根本没有被调用(没有事件,没有初始化,甚至没有构造函数)。当作为“正常”请求访问有问题的 .aspx 时,该模块会被很好地调用。但是在调用 WebMethod 时它拒绝被调用。
我的 .aspx 看起来像这样:
public partial class SelectionListService : System.Web.UI.Page
{
[WebMethod]
[ScriptMethod]
public static RadComboBoxData GetItemsAsRadComboBoxData(RadComboBoxContext context)
{
...
}
}
我的 HttpModule 如下所示:
public class MyModule : IHttpModule, IRequiresSessionState
{
public MyModule ()
{
}
public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += new EventHandler(Application_PreRequestHandlerExecute);
context.PostRequestHandlerExecute += new EventHandler(Application_PostRequestHandlerExecute);
}
private void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
...
}
private void Application_PostRequestHandlerExecute(object sender, EventArgs e)
{
...
}
}
我已经对此进行了很长时间的研究,但我就是无法让它发挥作用。有什么想法吗?
PS1:global.asax.cs 中的 BeginRequest 等在访问 WebMethod 时会被调用。 PS2:我在 Windows7 上运行 IIS7。
【问题讨论】:
-
用谷歌搜索你的查询并找到了这个forums.asp.net/t/1424500.aspx/1
标签: asp.net iis-7 httpmodule webmethod