500.21 Плохой модуль "ManagedPipelineHandler" в своем списке модулей

Я получаю сообщение об ошибке:

Ошибка HTTP 500.21 - Внутренняя ошибка сервера Обработчик "CloudConnectHandler" имеет плохой модуль "ManagedPipelineHandler" в своем списке модулей

мой файл web.config выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="CloudConnectHandler" verb="*" path="CloudConnect.aspx" type="CloudConnectHandler" resourceType="Unspecified" />
    </handlers>
  </system.webServer>
  <system.web>
    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.0" batch="false">
      <assemblies>
        <add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
        <add assembly="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
      </assemblies>
    </compilation>
    <pages>
      <controls>
        <add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
      </controls>
    </pages>
        <identity impersonate="true" />
        <authentication mode="Forms" />
  </system.web>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <providerOption name="CompilerVersion" value="v4.0" />
        <providerOption name="WarnAsError" value="false" />
      </compiler>
    </compilers>
  </system.codedom>
  <appSettings>
    <add key="CloudConnectAuthorization" value="xxxx" />
    <add key="ConnectionInfo" value="xxxx" />
    <add key="ConnectionString" value="xxxx" />
    <add key="DefaultChannel" value="xxxx" />
    <add key="LoginValidationConnectionString" value="xxxx" />
  </appSettings>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="protobuf-net" publicKeyToken="257b51d87d2e4d67" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.0.640" newVersion="2.0.0.640" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Существует много советов, указывающих, что asp.net установлен неправильно. Обычное исправление:

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

или

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

Я запустил оба без ошибок. Я перезапустил IIS, но проблема все еще сохраняется. На сайте используется пул приложений. Пул приложений запущен,.net framework = 4.0, Managed Pipeline = Classic, Identity = LocalSystem.

Я провел последние пару часов, пытаясь понять, в чем проблема. Я надеюсь, что кто-то может помочь.

Ответ 2

Выполните следующие действия:

1) Запустите командную строку как администратор.

2) Введите одну из двух строк ниже в командной строке:

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

или

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

Ответ 3

Я столкнулся с этой ошибкой в ​​новой версии Windows Server 2012 R2. IIS и .NET 4.5 были установлены, но роль сервера ASP.NET(версия 4.5 в моем случае) не была добавлена. Убедитесь, что версия ASP.NET, в которой вы нуждаетесь, была добавлена ​​/установлена ​​как ASP.NET 4.5 на этом снимке экрана.

ASP.NET Server Role

Ответ 4

Чтобы устранить проблему, я попытался запустить

% windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

Однако для меня это не сработало. Мне нужно запустить другую командную строку в окне CMD в качестве администратора. Вот команда:

dis/online/enable-feature/featurename: IIS-ASPNET45

или

dis/online/enable-feature/featurename: IIS-ASPNET45/all

Надеюсь, это поможет.

Ответ 5

Это связано с тем, что IIS 7 использует обработчики http из <system.web><httpHandlers> и <system.webServer><handlers>. если вам нужно CloudConnectHandler в вашем приложении, вы должны добавить раздел <httpHandlers> с этим обработчиком в <system.web>:

<httpHandlers>
    <add verb="*" path="CloudConnect.aspx" type="CloudConnectHandler" />
</httpHandlers>

а также добавить атрибут preCondition к обработчику в <system.webServer>:

<handlers>
  <add name="CloudConnectHandler" verb="*" path="CloudConnect.aspx" type="CloudConnectHandler" preCondition="integratedMode" />
</handlers>

Надеюсь, что это поможет

Ответ 6

Я получил эту ошибку в своем приложении ASP.Net 4.5 на Windows Server 2012 R2.

Перейдите в меню "Пуск" → "Включить или отключить функции Windows". Для меня появился волшебник.

Нажмите "Далее" для "Роли сервера"

Мне пришлось проверить их, чтобы это работало, находясь под веб-сервером IIS- > Веб-сервер- > Разработка приложений (они основаны на ответе Джереми Кука выше):

введите описание изображения здесь

Затем щелкните рядом с функциями и убедитесь, что выполнено следующее:

введите описание изображения здесь

Затем нажмите Далее и установите. В этот момент ошибка ушла. Удачи!

Ответ 7

Для меня я получал это сообщение об ошибке при использовании PUT или DELETE в WebAPI. Я также попытался перерегистрировать .NET Framework, как это было предложено, но безрезультатно.

Мне удалось исправить это, отключив WebDAV для моего отдельного пула приложений, это остановило ошибку "плохого модуля" при использовании PUT или DELETE.

Отключить WebDAV для отдельного пула приложений:

  • Нажмите на удаленный пул приложений
  • Найдите WebDAV Authoring Tools в списке
  • Нажмите, чтобы открыть его
  • Нажмите Disable WebDAV в правом верхнем углу.

Эта ссылка содержит инструкции, но это не очень понятно.

Ответ 8

У меня была эта проблема в Windows 10, когда мне нужна IIS вместо IIS Express. Новый веб-проект завершился с ошибкой OP. Исправление было

Control Panel > Turn Windows Features on or off > Internet Information Services > World Wide Web Services > Application Development Features

tick ASP.NET 4.7 (в моем случае)

Ответ 9

У меня была эта проблема при каждом развертывании нового веб-сайта или обновлении существующего с помощью MSDeploy.

Я смог исправить это, разгрузив домен приложения с помощью MSDeploy со следующим синтаксисом:

msdeploy.exe -verb:sync -source:recycleApp -dest:recycleApp="Default Web Site/myAppName",recycleMode=UnloadAppDomain

Вы также можете остановить, запустить или переработать пул приложений - подробнее здесь: http://technet.microsoft.com/en-us/library/ee522997%28v=ws.10%29.aspx

В то время как решение Armaan помогло мне отклеить, это не устранило проблему.

Ответ 10

если это IIS 8, перейдите на панель управления, включите/выключите функции Windows и включите функцию Bad Named pipe Activation, затем перезапустите IIS. Надеюсь, что те же самые работы с IIS 7

Ответ 11

У меня была такая же проблема, ASP.net 4.5 не был установлен. Установка исправила ошибку !! Спасибо!

Ответ 12

Я обнаружил, что порядок добавления ролей и функций важен. В новой системе я активирую роль "сервер приложений" и там явно проверяю .net, поддержку веб-сервера и, наконец, активацию активации процесса Затем автоматически появляется диалог, в котором также должна быть добавлена ​​роль "веб-сервер".