我收到错误消息:
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。
我花了最后几个小时试图找出问题所在。我希望有人能帮忙。
请按照以下步骤操作:
1) 以管理员身份运行命令提示符。
2) 在命令提示符下键入以下两行之一:
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
或者
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
我在全新构建的 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
为了解决这个问题,我尝试运行
%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
希望它会有所帮助。
%
后, dism 命令对我有用。所以我跑了:dism /online /enable-feature /featurename:IIS-ASPNET45 /all
。
尝试切换到集成模式。请参阅以下线程:
IIS 7, HttpHandler and HTTP Error 500.21
我在 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
然后单击下一步并安装。在这一点上,错误对我来说消失了。祝你好运!
这是因为 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>
希望能帮助到你
当我需要 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
(在我的情况下)
对我来说,我在使用 PUT
或 DELETE
到 WebAPI 时收到此错误消息。我还尝试按照建议重新注册 .NET Framework,但无济于事。
我可以通过为我的个人应用程序池禁用 WebDAV 来解决此问题,这在使用 PUT
或 DELETE
时停止了“坏模块”错误。
为单个应用程序池禁用 WebDAV:
单击受影响的应用程序池 在列表中找到 WebDAV Authoring Tools 单击以将其打开 单击右上角的禁用 WebDAV。
This link 是我找到说明的地方,但不是很清楚。
每次我使用 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 的解决方案帮助我摆脱了困境,但它并没有让问题永久消失。
如果是 IIS 8,请转到控制面板,打开/关闭 Windows 功能并启用错误的“命名管道激活”,然后重新启动 IIS。希望同样适用于 IIS 7
我发现添加角色和功能的顺序很重要。在一个新系统上,我激活角色“应用程序服务器”并明确检查.net、Web 服务器支持,最后处理激活服务然后自动出现一个对话框,提示还需要添加角色“Web 服务器”。
如下安装 .NET 框架,它也适用于 .NET 4.5 版。
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir
有时只给 aspnet_regiis.exe -i
不起作用,所以在上面的路径中给 aspnet_regiis.exe -ir
。