События Global.asax не запускаются в интегрированном режиме IIS 7 с маршрутизацией .net 4 - PullRequest
0 голосов
/ 30 ноября 2011

Я только что переключился на использование Server 2008 / IIS 7. Я запускаю свое приложение в интегрированном режиме.Я использую функцию маршрутизации .Net 4.0 и использую URL без расширения.

Моя проблема в том, что события в файле global.asax, которые находятся после BeginRequest, не запускаются.

События запускаются, если я попадаю на мою страницу с использованием расширения .aspx, но не когдау него нет расширения.

Кто-нибудь знает, что мне нужно сделать, чтобы событие Application_AcquireRequestState сработало для перенаправленных URL-адресов без расширения в IIS 7?

1 Ответ

0 голосов
/ 04 декабря 2011

Я считаю, что события в 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()
        {
        }
    }
}
...