"Для этой операции требуется интегрированный режим конвейера 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 или что-то еще?
Ответы
Ответ 1
Это было странной проблемой, поскольку IIS моего хоста не должен жаловаться на то, что он требует интегрированного конвейерного режима, когда он уже находится в этом режиме, как я сказал в своем вопросе как:
Я много искал и не смог ничего найти, кроме как заставить читателя переключить конвейер с классического режима на интегрированный режим, который я уже сделал без удачи..
Используя инструкции Леви, я поместил <%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %>
и <%: System.Web.Hosting.HttpRuntime.IISVersion %>
* на пустую страницу aspx, рассказал своему хозяину, что происходит, и попросил их исправить проблему и подтвердить проблему, используя страницу, которую я загрузил... Я очень часто проверял, изменилось ли что-то в состоянии страницы, и я вижу, что они пытались решить ее в течение 3-4 часов...
Когда я спросил, что они сделали для решения проблемы, их ответ был отчасти "засекречен", так как они сказали:
Наша команда внесла необходимые изменения на сервере
Проблема была все с моим хозяином.
* Update: As Ben stated in the comments
<%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %>
и
<%: System.Web.Hosting.HttpRuntime.IISVersion %>
больше не действительны, и они теперь:
-
<%: System.Web.HttpRuntime.UsingIntegratedPipeline %>
и
<%: System.Web.HttpRuntime.IISVersion %>
Ответ 2
Ваш пул приложений находится в классическом режиме, но для запуска приложения требуется встроенный режим. перейдите в Интегрированный режим:
-
Откройте диспетчер IIS
-
Пул приложений
-
Выберите пул, в котором запущено ваше приложение.
-
На правой панели выберите Basic Setting
-
Управление переключением режима трубопровода на встроенный
Ответ 3
Попробуйте использовать Response.AddHeader
вместо Response.Headers.Add()
Ответ 4
У меня была та же проблема, и я решил ее следующим образом:
В Visual Studio выберите "Свойства проекта".
Выберите вкладку "Интернет".
Выберите "Использовать локальный веб-сервер IIS".
Отметьте "Использовать IIS Express"
Ответ 5
Эта ошибка означает, что пул приложений, к которому относится развернутое приложение, не находится в интегрированном режиме.
- Создайте новый пул приложений с выбранной версией .NET 4 и режимом управляемого конвейера как Интегрированный.
- Измените пул приложений вашего приложения на созданный выше и попробуйте сейчас.
Ответ 6
Способ устранения этой проблемы не входит в IIS. Я пытался запустить приложение в IIS Express в Visual Studio. Я искал в Интернете, и некоторые статьи говорили, чтобы добавить тег идентификации в тег system.web. Это не правильный путь.
То, как я смог решить эту проблему, - это щелкнуть файл проекта и перейти к свойствам.
В управляемом конвейере я изменил значение свойства от классического до интегрированного.
Это решило мою проблему.
Ответ 7
Я решил эту проблему, выполнив следующие действия:
- Щелкните правой кнопкой мыши на корневой папке проекта.
- Перейти к свойствам
- Нажмите веб в левом меню
- изменить текущий порт http://localhost:####/
- нажмите создать виртуальный каталог
- Сохраните изменения (ctrl + s)
- Запуск
может быть, это поможет вам.
Ответ 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