Пользовательский C # HttpModule Бесконечный цикл перенаправления - PullRequest
2 голосов
/ 10 сентября 2009

Я пишу собственный c # HttpModule, который будет обрабатывать запросы от всех типов файлов. В качестве простого подтверждения концепции я настроил модуль, добавив ссылку на раздел httpModules веб-конфигурации и добавив расширения приложения для демонстрационного веб-сайта IIS со ссылкой на aspnet_isapi.dll, чтобы в настоящее время он только перехватывает запрос на ". htm "файлы

Но даже если в событии «OnBeginRequest» (код ниже) значимого кода нет, это вызывает бесконечный цикл перенаправления. Я использую IIS 5 на XP Кто-нибудь есть идеи?

До сих пор я видел только примеры HttpModule для использования с файлами ASPX, но вы наверняка можете настроить их для любого типа файлов?

#region IHttpModule Members

        public void Dispose() { }

        public void Init(HttpApplication context)
        {
            context.BeginRequest += new EventHandler(OnBeginRequest);
        }

        /// 
        ///
        /// 
        /// 
        public void OnBeginRequest(Object s, EventArgs e)
        {
            HttpApplication context = s as HttpApplication;

            Uri currentURL = context.Request.Url;
            string pageName = currentURL.Segments.Last().ToLower();
        }
#endregion

1 Ответ

1 голос
/ 14 сентября 2009

OK. Проблема была в самом HttpModule.

Похоже, что вы должны использовать контекст HttpApplication, чтобы он отображался на клиенте.

Например, после того, как вы выполнили всю свою собственную логику, вам нужно записать в контекст:

context.Response.Write("/n/r");

//or

context.Response.Redirect("test.htm");

Затем все рендерится так, как вы ожидаете

...