【问题标题】:500.21 Bad module "ManagedPipelineHandler" in its module list500.21 模块列表中的错误模块“ManagedPipelineHandler”
【发布时间】:2014-01-21 15:39:15
【问题描述】:

我收到错误:

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 错误

标签: asp.net iis-7


【解决方案1】:

请按以下步骤操作:

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 位版本)也可以修复它。
【解决方案2】:

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

【讨论】:

  • 现在是 ASP.NET 4.7 (Svr 2016)
【解决方案3】:

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

%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!非常感谢!
【解决方案4】:

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

IIS 7, HttpHandler and HTTP Error 500.21

【讨论】:

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

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

转到开始菜单 -> “打开或关闭 Windows 功能”。为我弹出了一个向导。

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

我必须检查这些才能使其正常工作,位于 Web 服务器 IIS->Web 服务器-> 应用程序开发下(这些基于 Jeremy Cook 上面的回答):

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

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

【讨论】:

    【解决方案6】:

    这是因为 IIS 7 使用来自 &lt;system.web&gt;&lt;httpHandlers&gt;&lt;system.webServer&gt;&lt;handlers&gt; 的 http 处理程序。如果您的应用程序中需要 CloudConnectHandler,则应将带有此处理程序的 &lt;httpHandlers&gt; 部分添加到 &lt;system.web&gt;

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

    并且还将preCondition 属性添加到&lt;system.webServer&gt; 中的处理程序:

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

    希望对你有帮助

    【讨论】:

      【解决方案7】:

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

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

      勾选ASP.NET 4.7(以我为例)

      【讨论】:

        【解决方案8】:

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

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

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

        1. 点击受影响的应用程序池
        2. 在列表中找到WebDAV Authoring Tools
        3. 点击打开
        4. 点击右上角的Disable WebDAV

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

        【讨论】:

        • 正是我的问题。在启用 WebDav 的情况下,Put 和 Delete 不起作用。感谢您分享您的发现!
        【解决方案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 功能并启用错误的“命名管道激活”,然后重新启动 IIS。希望同样适用于 IIS 7

          【讨论】:

            【解决方案11】:

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

            【讨论】:

              【解决方案12】:

              如下安装 .NET 框架,.NET 版本 4.5 也可以。

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

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2013-07-02
                • 1970-01-01
                • 1970-01-01
                • 2011-10-14
                • 2012-01-29
                • 2013-06-13
                • 2020-04-13
                • 1970-01-01
                相关资源
                最近更新 更多