Пользовательский C # HttpModule Infinite Redirect Loop

Я пишу собственный HttpModule C #, который будет обрабатывать запросы из всех типов файлов. В качестве простого доказательства концепции я установил модуль, добавив ссылку на раздел 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

person Community    schedule 10.09.2009    source источник
comment
да. Проблема не в этом. Вы ищете не в том месте. Не знаю, где это происходит, хотя.   -  person    schedule 10.09.2009
comment
Я согласен с этим, но это стандартная установка IIS 5.0, поэтому я не уверен, в чем проблема. Кто-нибудь пробовал раньше настраивать HttpModules для файлов .htm?   -  person    schedule 11.09.2009


Ответы (1)


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

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

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

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

//or

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

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

person Community    schedule 14.09.2009