Ошибка 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 работает над классической управляемой линией.