Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

Response.AddHeader("X-Foo", "bar")

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

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

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