Ошибка 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>
Это сработало для меня:
- Удалить изначально созданный сайт.
- Воссоздать сайт в IIS
- Чистый раствор
- Построить решение
Похоже, что-то пошло на юг, когда я изначально создал сайт. Я ненавижу решения, похожие на "Перезагрузите компьютер, затем переустановите 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 работает на линии управляемого классического трубопровода.