2009-09-10 2 views
2

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

Но даже если в событии« 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

Да. Это не проблема. Вы ищете не то место. Не знаю, где это происходит, т. – Will

+0

Я согласен с этим, но это установка по умолчанию IIS 5.0, поэтому я не уверен, что вызывает проблему. Кто-нибудь пытался настроить HttpModules для файлов .htm раньше? – 2009-09-11 14:40:12

ответ

1

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

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

Для примера после того, как вы выполнили всю свою пользовательскую логику, необходимую для записи в контекст: то

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

//or 

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

Все визуализирует, как можно было бы ожидать

 Смежные вопросы

  • Нет связанных вопросов^_^