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

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

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

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

Ответ 1

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

Короткие

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

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

Long Если возможно, лучше всего изменить свое приложение для поддержки интегрированных конвейеров. Существует ряд изменений между 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

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

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

Ответ 2

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

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

Ответ 3

Я изменил файл 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>

Ответ 4

Использование 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>

Ответ 5

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

  • Удалить созданный сайт.
  • Восстановить сайт в IIS
  • Чистое решение
  • Построить решение

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

Ответ 6

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

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

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

Ответ 7

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

Ответ 8

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