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

"Для этой операции требуется интегрированный режим конвейера IIS".

У меня есть веб-приложение, разрабатываемое для Windows 8.1,.NET 4.5.1, IIS 8.5 (в рамках Integrated AppPool), Visual Studio 2013 с шаблоном по умолчанию, который включает ASP.NET Identity, Owin и т.д., И локально работает нормально.

Затем я загрузил его на Windows Server 2008 с помощью хоста IIS 7.5 (Integrated Pipeline) и получил:

Для этой операции требуется интегрированный режим конвейера IIS.

Сведения об исключении:
System.PlatformNotSupportedException: для этой операции требуется режим интегрированного конвейера IIS.

Stack Trace:

[PlatformNotSupportedException: This operation requires IIS integrated pipeline mode.]
  System.Web.HttpResponse.get_Headers() +9687046
  System.Web.HttpResponseWrapper.get_Headers() +9
  Microsoft.Owin.Host.SystemWeb.OwinCallContext.CreateEnvironment() +309
  Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.GetInitialEnvironment(HttpApplication application) +246
  Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.PrepareInitialContext(HttpApplication application) +15
  Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.BeginEvent(Object sender, EventArgs e, AsyncCallback cb, Object extradata) +265
  System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +285
  System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

Я не могу найти ничего, кроме указания читателю переключить конвейер с классического режима на интегрированный режим, что я уже сделал безуспешно.

Что я могу сделать, чтобы решить проблему? Разве "Microsoft.Owin.Host.SystemWeb" не нравится IIS 7.5 или что-то еще?

4b9b3361

Ответ 1

Это было странной проблемой, поскольку IIS моего хоста не должен жаловаться на то, что он требует интегрированного конвейерного режима, когда он уже находится в этом режиме, как я сказал в своем вопросе как:

Я много искал и не смог ничего найти, кроме как заставить читателя переключить конвейер с классического режима на интегрированный режим, который я уже сделал без удачи..

Используя инструкции Леви, я поместил <%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %> и <%: System.Web.Hosting.HttpRuntime.IISVersion %>* на пустую страницу aspx, рассказал своему хозяину, что происходит, и попросил их исправить проблему и подтвердить проблему, используя страницу, которую я загрузил... Я очень часто проверял, изменилось ли что-то в состоянии страницы, и я вижу, что они пытались решить ее в течение 3-4 часов...

Когда я спросил, что они сделали для решения проблемы, их ответ был отчасти "засекречен", так как они сказали:

Наша команда внесла необходимые изменения на сервере

Проблема была все с моим хозяином.

* Update: As Ben stated in the comments

  1. <%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %> и
  2. <%: System.Web.Hosting.HttpRuntime.IISVersion %>

больше не действительны, и они теперь:

  1. <%: System.Web.HttpRuntime.UsingIntegratedPipeline %> и
  2. <%: System.Web.HttpRuntime.IISVersion %>

Ответ 2

Ваш пул приложений находится в классическом режиме, но для запуска приложения требуется встроенный режим. перейдите в Интегрированный режим:

  • Откройте диспетчер IIS

  • Пул приложений

  • Выберите пул, в котором запущено ваше приложение.

  • На правой панели выберите Basic Setting

  • Управление переключением режима трубопровода на встроенный

Ответ 3

Попробуйте использовать Response.AddHeader вместо Response.Headers.Add()

Ответ 4

У меня была та же проблема, и я решил ее следующим образом:

  1. В Visual Studio выберите "Свойства проекта".

  2. Выберите вкладку "Интернет".

  3. Выберите "Использовать локальный веб-сервер IIS".

  4. Отметьте "Использовать IIS Express"

Ответ 5

Эта ошибка означает, что пул приложений, к которому относится развернутое приложение, не находится в интегрированном режиме.

  1. Создайте новый пул приложений с выбранной версией .NET 4 и режимом управляемого конвейера как Интегрированный.
  2. Измените пул приложений вашего приложения на созданный выше и попробуйте сейчас.

Ответ 6

Способ устранения этой проблемы не входит в IIS. Я пытался запустить приложение в IIS Express в Visual Studio. Я искал в Интернете, и некоторые статьи говорили, чтобы добавить тег идентификации в тег system.web. Это не правильный путь.

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

Это решило мою проблему.

Ответ 7

Я решил эту проблему, выполнив следующие действия:

  1. Щелкните правой кнопкой мыши на корневой папке проекта.
  2. Перейти к свойствам
  3. Нажмите веб в левом меню
  4. изменить текущий порт http://localhost:####/
  5. нажмите создать виртуальный каталог
  6. Сохраните изменения (ctrl + s)
  7. Запуск

может быть, это поможет вам.

Ответ 8

Для Visual Studio 2012 при отладке эта ошибка возникла

Меню сайта → Использовать IIS Express сделали это для меня

Ответ 9

Те, кто использует VS2012

Откройте проект > Свойствa > Веб

Проверить использование локального веб-сервера IIS

Проверить использование IIS Express

Project Url http://localhost:PORT/

Ответ 10

Решение GitHub решило проблему для меня, добавив

  • Global.asax.cs: установить AntiForgeryConfig.SuppressXFrameOptionsHeader = true; в Application_Start:
  • Вручную добавьте заголовок X-Frame-Options в Application_BeginRequest