IIS6 + HttpModule: для этой операции требуется интегрированный режим конвейера IIS - PullRequest
18 голосов
/ 09 октября 2008

Я использую IIS6, я написал HttpModule, и я получаю эту ошибку? После поиска в Интернете я обнаружил, что эта проблема вызвана платформой .NET Framework 3.5, поэтому я установил ее на компьютер, на котором не установил .NET 3.5, но проблема все еще существует!

Ответы [ 4 ]

39 голосов
/ 09 октября 2008

Моя попытка психической отладки: вы используете выражение вроде:

Response.Headers("X-Foo") = "bar"

Если это действительно так, то изменение этого, как показано ниже, обойдет проблему:

Response.AddHeader("X-Foo", "bar")
7 голосов
/ 09 октября 2008

Только IIS7 поддерживает интегрированный конвейер. В IIS7 модуль HttpModule может участвовать во всех запросах, поступающих на веб-сервер, а не только в тех, которые направлены на определенные расширения файлов.

II6 использует то, что IIS7 называет классическим конвейером, в котором HttpModules могут участвовать только после того, как более ранний конвейер на основе ISAPI определит, что для сопоставления сценария требуется запрос на передачу в ASP.NET.

6 голосов
/ 18 мая 2010

Только что сталкивался с этой проблемой. Использование IIS6 и .NET 3.5. Исправление для меня было использовать Response.AddHeader вместо Response.Headers.Add. НТН.

0 голосов
/ 14 января 2014

Вдохновленный другими ответами, я обнаружил, что он обращается к объекту Response.Headers , что вызывает исключение "операция требует интегрированного режима конвейера IIS".

Избегайте .Headers и вызывайте другие (более старые?) Вспомогательные функции, такие как:

  • Response.AddHeader() и
  • Response.ClearHeaders() (в моем случае!)
...