500.21模块列表中的模块“ManagedPipelineHandler”错误

时间:2014-01-03 21:00:38

标签: asp.net iis-7

我收到错误:

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。

我花了最后几个小时试图找出问题所在。我希望有人可以提供帮助。

12 个答案:

答案 0 :(得分:185)

请按以下步骤操作:

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

2)在命令提示符下键入以下两行中的任何一行:

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

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

答案 1 :(得分:51)

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

ASP.NET Server Role

答案 2 :(得分:28)

要解决此问题,我尝试运行

%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

希望它会有所帮助。

答案 3 :(得分:16)

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

IIS 7, HttpHandler and HTTP Error 500.21

答案 4 :(得分:3)

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

转到开始菜单 - &gt; &#34;打开或关闭Windows功能&#34;。为我弹出了一个向导。

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

我必须检查这些以使其工作,位于Web服务器IIS-&gt; Web服务器 - &gt;应用程序开发(这些基于Jeremy Cook的答案):

enter image description here

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

enter image description here

然后单击“下一步”并安装。此时,错误消失了。祝你好运!

答案 5 :(得分:2)

这是因为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>

希望有所帮助

答案 6 :(得分:2)

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

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

禁用个人应用程序池的WebDAV:

  1. 单击受影响的应用程序池
  2. 在列表中找到WebDAV Authoring Tools
  3. 点击打开
  4. 点击右上角的Disable WebDAV
  5. This link是我发现指示的地方,但不是很清楚。

答案 7 :(得分:2)

当我需要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(在我的情况下)

答案 8 :(得分:0)

每次部署新网站或使用 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的解决方案帮助我解开了,但它并没有让问题永久消失。

答案 9 :(得分:0)

如果是IIS 8,请转到控制面板,打开/关闭Windows功能并启用Bad&#34;命名管道激活&#34;然后重启IIS。希望IIS 7同样适用

答案 10 :(得分:-1)

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

答案 11 :(得分:-1)

按如下所示安装.NET框架,它也将适用.NET版本 4.5

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

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