2011-11-29 20 views
0

我刚切换到使用Server 2008/IIS 7。我正在集成模式下运行我的应用程序。我正在使用.Net 4.0路由功能并使用无扩展名的网址。Global.asax事件没有在IIS 7集成模式下触发.net 4路由

我的问题是在BeginRequest之后global.asax文件中的事件不会触发。

如果我使用.aspx扩展名打开了我的页面,但没有扩展名的时候触发了这些事件。

有谁知道我必须做什么才能让Application_AcquireRequestState事件触发IIS 7中路由的,无扩展名的URL?

回答

0

我相信Global.asax中的事件仅针对标准HttpHandler(来自Page类的对象)处理的请求触发。

要接收每个请求的事件,您应该创建并注册一个HttpModule

using System; 
using System.Web; 

namespace Sample 
{ 
    public class SampleModule : IHttpModule 
    { 
     public void Init(HttpApplication context) 
     { 
      context.AcquireRequestState += OnAcquireRequestState; 
     } 

     void OnAcquireRequestState(object sender, EventArgs e) 
     { 
     } 

     public void Dispose() 
     { 
     } 
    } 
}