ChatGPT解决这个技术问题 Extra ChatGPT

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。

我花了最后几个小时试图找出问题所在。我希望有人能帮忙。

我必须添加属性 来解决我得到的 500.21 错误

a
ataravati

请按照以下步骤操作:

1) 以管理员身份运行命令提示符。

2) 在命令提示符下键入以下两行之一:

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

或者

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

欢迎来到 SO 并感谢您的回答。由于其简洁性,该答案已被标记为供审查。虽然您的答案在技术上可能是正确的,但可以通过更多文本来改进它,解释 OP 的根本问题是什么,以及您的答案为何有效。
这是更多的文字。因为它有效muhahahaha +1。我认为真正的原因是,如果您先安装 4.5.1,然后在其上粘贴 IIS,则不会自动识别正确。或者我有相反的顺序。无论哪种方式。这对我有用
这就是解决方案!
我正在构建一个新的 2008 R2 服务器(是的,在 2015 年),我先安装了 4.5.x,然后将 IIS 固定在上面。就像@hubsonBropa 在他的评论中提到的那样。这让我克服了许多障碍中的第一个。
如果您使用的是 .NET 4.5.x 或 4.6.x,请不要被提到 4.0 的答案所迷惑,并认为它不适用于您。这个问题可能与 .NET 在 IIS 之前的安装顺序有关,就像我一样。即使我的应用程序使用的是 .NET 4.5.2,运行命令(在我的情况下是 64 位版本)也可以修复它。
J
Jeremy Cook

我在全新构建的 Windows Server 2012 R2 上遇到了这个错误。已安装 IIS 和 .NET 4.5,但尚未添加 ASP.NET 服务器角色(在我的情况下为 4.5 版)。确保您需要的 ASP.NET 版本已像 ASP.NET 4.5 一样在此屏幕截图中添加/安装。

https://i.stack.imgur.com/VxNNn.png


现在是 ASP.NET 4.7 (Svr 2016)
T
Tim Murphy

为了解决这个问题,我尝试运行

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

但是它对我不起作用。我必须以管理员身份在 CMD 窗口中运行另一个命令行。这是命令:

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

或者

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

希望它会有所帮助。


这在带有 IIS 10 的 Window 10 Preview Build 10074 上也为我解决了这个问题。
从一开始删除 % 后, dism 命令对我有用。所以我跑了:dism /online /enable-feature /featurename:IIS-ASPNET45 /all
适用于 Windows Server 2016!非常感谢!
C
Community

尝试切换到集成模式。请参阅以下线程:

IIS 7, HttpHandler and HTTP Error 500.21


我已将其切换为集成,这导致了不同的错误。一旦我解决了这个问题,一切都开始正常工作。谢谢你。
对此“投反对票”。我已经启用了集成模式。 @Armaan 简短但完美地回答了它。
这个答案是有效的,它解决了我的问题,我使用了 NET 3.5 并得到了 500.21 错误。切换到集成模式解决了我的问题。
R
Rudy Scoggins

我在 Windows Server 2012 R2 上的 ASP.Net 4.5 应用程序上遇到此错误。

转到开始菜单->“打开或关闭 Windows 功能”。一个向导突然出现在我面前。

单击服务器角色旁边的下一步

我必须检查这些才能使其正常工作,位于 Web Server IIS->Web Server-> Application Development 下(这些基于 Jeremy Cook 上面的回答):

https://i.stack.imgur.com/ItUyK.png

然后单击功能旁边的并确保选中以下内容:

https://i.stack.imgur.com/WgQal.png

然后单击下一步并安装。在这一点上,错误对我来说消失了。祝你好运!


E
Evgeny Gorb

这是因为 IIS 7 使用来自 <system.web><httpHandlers><system.webServer><handlers> 的 http 处理程序。如果您的应用程序中需要 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>

希望能帮助到你


N
Neil Thompson

当我需要 IIS 而不是 IIS Express 时,我在 Windows 10 中遇到了这个问题。新 Web 项目因 OP 错误而失败。修复是

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

勾选 ASP.NET 4.7(在我的情况下)


L
Luke

对我来说,我在使用 PUTDELETE 到 WebAPI 时收到此错误消息。我还尝试按照建议重新注册 .NET Framework,但无济于事。

我可以通过为我的个人应用程序池禁用 WebDAV 来解决此问题,这在使用 PUTDELETE 时停止了“坏模块”错误。

为单个应用程序池禁用 WebDAV:

单击受影响的应用程序池 在列表中找到 WebDAV Authoring Tools 单击以将其打开 单击右上角的禁用 WebDAV。

This link 是我找到说明的地方,但不是很清楚。


我的问题正是。在启用 WebDav 的情况下,Put 和 Delete 不起作用。感谢您分享您的发现!
n
neoscribe

每次我使用 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 的解决方案帮助我摆脱了困境,但它并没有让问题永久消失。


u
user3024678

如果是 IIS 8,请转到控制面板,打开/关闭 Windows 功能并启用错误的“命名管道激活”,然后重新启动 IIS。希望同样适用于 IIS 7


J
Jasper

我发现添加角色和功能的顺序很重要。在一个新系统上,我激活角色“应用程序服务器”并明确检查.net、Web 服务器支持,最后处理激活服务然后自动出现一个对话框,提示还需要添加角色“Web 服务器”。


G
Giulio Caccin

如下安装 .NET 框架,它也适用于 .NET 4.5 版。

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

有时只给 aspnet_regiis.exe -i 不起作用,所以在上面的路径中给 aspnet_regiis.exe -ir