Ошибка HTTP 500.22 - внутренняя ошибка сервера (обнаружен параметр ASP.NET, который не применяется в режиме интегрированного управляемого конвейера.)

Я получаю эту ошибку при просмотре приложения.

Ошибка HTTP 500.22 - внутренняя ошибка сервера (обнаружен параметр ASP.NET, который не применяется в режиме интегрированного управляемого конвейера.)

.Net Framework 2.0, 3.5 и 4 установлены, и я использую SQL 2008. Может кто-нибудь сказать мне, что решение для этой ошибки?

8 ответов

Эта проблема вызвана режимом конвейера в настройке пула приложений, который установлен на вашем веб-сайте.

короткий

  • Простой способ Измените режим пула приложений на режим, в котором включен классический конвейер.
  • Правильный способ Необходимо изменить ваше web.config / web-приложение для поддержки интегрированных конвейеров. Обычно это так же просто, как удалить части вашего web.config.
  • Простой способ (плохая практика) Добавьте следующее в ваш web.config. См. http://www.iis.net/ConfigReference/system.webServer/validation

     <system.webServer>
         <validation validateIntegratedModeConfiguration="false" />
     </system.webServer>
    

Длинный Если возможно, лучше всего изменить приложение для поддержки интегрированных конвейеров. Существует ряд изменений между IIS6 и IIS7.x, которые вызовут эту ошибку. Вы можете найти подробную информацию об этих изменениях здесь http://learn.iis.net/page.aspx/381/aspnet-20-breaking-changes-on-iis-70/.

Если вы не можете сделать это, вам нужно изменить пул приложений, что может быть сложнее сделать в зависимости от вашей доступности для веб-сервера.

  • Перейти на веб-сервер
  • Откройте диспетчер IIS
  • Перейдите на свой сайт
  • Нажмите Расширенные настройки в правой панели действий.
  • В разделе "Пул приложений" измените его на пул приложений, для которого включен классический режим.

Проверьте http://technet.microsoft.com/en-us/library/cc731755(WS.10).aspx для получения подробной информации об изменении пула приложений

Если вам нужно создать пул приложений с классическими конвейерами, взгляните на http://technet.microsoft.com/en-us/library/cc731784(WS.10).aspx

Если у вас нет доступа к серверу, чтобы сделать это изменение, вам нужно сделать это через ваш хостинг-сервер и обратиться к ним за помощью.

Не стесняйтесь задавать вопросы.

В вашем файле web.config убедитесь, что эти ключи существуют:

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
    </system.webServer>
</configuration>

Я изменил свой файл web.config, чтобы использовать HTTPMODULE в двух формах:

IIS: 6

<httpModules>
    <add name="Module" type="app.Module,app"/>
</httpModules>

IIS: 7,5

<system.webServer>
    <modules>
       <add name="Module" type="app.Module,app"/>
    </modules>
</system.webServer>

Использование VS2013 .net 4.5

У меня была такая же проблема.

Раздел "Наиболее вероятные причины" на странице сообщения об ошибке предоставил наибольшую помощь. Для меня. Он сказал: "Это приложение определяет конфигурацию в разделе system.web/httpModules". Затем в разделе "Вещи, которые вы можете попробовать" было сказано "Перенос конфигурации в раздел system.webServer/modules".

<system.web>
      <httpHandlers>
        <add type="DevExpress.Web.ASPxUploadProgressHttpHandler, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET,POST" path="ASPxUploadProgressHandlerPage.ashx" validate="false" />
        <add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET" path="DX.ashx" validate="false" />
      </httpHandlers>
      <httpModules>
        <add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" />
      </httpModules>
    </system.web>

в раздел system.webServer.

<system.webServer> 
    <handlers>
      <add type="DevExpress.Web.ASPxUploadProgressHttpHandler, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET,POST" path="ASPxUploadProgressHandlerPage.ashx" name="ASPxUploadProgressHandler" preCondition="integratedMode" />
      <add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET" path="DX.ashx" name="ASPxHttpHandlerModule" preCondition="integratedMode" />
    </handlers>
    <modules>
      <add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" />
    </modules>
</system.webServer>

Это сработало для меня:

  1. Удалить изначально созданный сайт.
  2. Воссоздать сайт в IIS
  3. Чистый раствор
  4. Построить решение

Похоже, что-то пошло на юг, когда я изначально создал сайт. Я ненавижу решения, похожие на "Перезагрузите компьютер, затем переустановите Windows", не зная, что вызвало ошибку. Но это сработало для меня. Быстро и просто. Надеюсь, это поможет кому-то еще.

У меня похожая проблема с IIS 7, Win 7 Enterprise Pack. Я изменил пул приложений, как в ответе @Kirk:

Измените режим пула приложений на режим, в котором включен классический конвейер ".но мне не повезло.

Добавление еще одного шага сработало для меня. Я изменил мой сайт .NET Frameworkis v2.0 в .NET Frameworkis v4.0. в ApplicationPool

Персонально я столкнулся с этой проблемой при переносе веб-сайта IIS6 в IIS7, чтобы исправить эту проблему, я использовал эту командную строку:
%windir%\System32\inetsrv\appcmd migrate config "MyWebSite\"
Обязательно сделайте резервную копию вашего web.config

Установите Пул приложений на классическое приложение.NET и убедитесь, что классическое приложение.Net работает на линии управляемого классического трубопровода.

Другие вопросы по тегам