ASP.NET IIS 7.5 HTTP 500.21错误

24

我在设置本地站点时遇到了问题。

该项目使用 ASP.NET Framework 4.0,我的 DefaultAppPool 使用 4.0,并将托管管道模式设置为集成。

这是我收到的错误信息:

HTTP Error 500.21 - Internal Server Error
Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list

Module  IIS Web Core
Notification    ExecuteRequestHandler
Handler PageHandlerFactory-Integrated
Error Code  0x8007000d
Requested URL   http://localhost:80/default.aspx
Physical Path   C:\Snugabye\Website\default.aspx
Logon Method    Anonymous
Logon User  Anonymous

Most likely causes:
Managed handler is used; however, ASP.NET is not installed or is not installed completely.
There is a typographical error in the configuration for the handler module list.

Things you can try:
Install ASP.NET if you are using managed handler.
Ensure that the handler module's name is specified correctly. Module names are case-sensitive and use the format modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule".

在控制面板 -> 程序 -> 打开 / 关闭窗口功能下,我只看到了Microsoft .NET Framework 3.5.1,没有关于4.0的选项,请问我有什么遗漏吗?


请问您使用的是哪个版本/服务包的Windows操作系统? - Paul Sasik
Dipak Patil和iberodev都发布了回答,帮助我解决了这个问题。您是否考虑将您的问题标记为已解决?或者您仍然遇到这个问题吗? - Lars Hansen
4个回答

51

你是否已经将.NET与IIS注册?如果没有,请运行以下命令:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

你需要从管理员权限的命令提示符(...以管理员身份运行)中执行此操作。


按照医嘱准确执行! - tatigo

5

根据您的.NET版本,我猜测您正在使用Windows 7。

根据.NET 4.0版本和依赖关系

(.NET 4.0) 不作为Windows操作系统的一部分安装,但可以单独安装在Windows XP、Windows Server 2003和之后的Windows版本上。

请点击此链接下载.NET 4.0安装程序

安装完成后,您可能需要进行其他配置。请参阅此博客文章

如果链接失效,请查看以下博客文章摘录:

在计算机上安装完.NET Framework 4.0后,您需要对IIS进行一些配置更改,以使ASP.NET 4.0页面正常运行:

首先将应用程序池设置为运行ASP.NET v4.0“模式”。

然后,您需要允许ASP.NET v4.0.x运行。这是在服务器级别找到的ISAPI和CGI限制中完成的。

转到管理工具> Internet信息服务管理器>单击服务器。然后打开ISAPI和CGI限制>查找ASP.NET V4.0.XXX,确保限制设置为"允许"。如果设置为"不允许",双击它,并检查允许扩展路径执行。点击确定。

注意:根据安装顺序,您可能还需要从命令行运行 aspnet_regiis.exe -i 来在IIS上“重新安装”ASP.NET。

有关在各种Windows版本上配置IIS 7.5的ISAPI和CGI限制的说明。


当我尝试安装.NET 4.0时,它会显示:此计算机上已经安装了相同或更高版本的.NET Framework 4。 我应该卸载并重试吗? - user1269625
不是,查看此博客文章中添加到答案的其他配置选项:http://frejnorling.wordpress.com/2011/02/13/configure-iis-7-5-to-manage-asp-net-4-0-web-pages/(也在答案编辑中提及)。 - Paul Sasik
我不知道 ISAPI 和 CGI 是什么。 - user1269625
@user1269625:请查看此链接:http://www.iis.net/configreference/system.webserver/security/isapicgirestriction。同时也是答案的一部分。 - Paul Sasik
@user1269625:在答案中添加了配置的附加步骤:转到“管理工具”>“Internet信息服务管理器”>单击服务器。然后打开ISAPI和CGI限制>查找ASP.NET V4.0.XXX,确保限制设置为允许。如果设置为不允许,请双击它,并检查允许扩展路径执行。点击确定。 - Paul Sasik
@user1269625:还有一个需要排除故障的问题:aspnet_regiis.exe -i 祝你好运。 - Paul Sasik

5

我曾经遇到相同的问题。当我检查应用程序池的.NET框架版本时,它是v2.0。我的应用程序与4.0兼容。我运行了以下命令来解决问题,现在我能够使用我的Web服务了。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

然而,在运行这些命令后,默认的.NET框架也更改为v4.0。

那基本上是在复制下面的答案,对吧? :P - mikus
使用 aspnet_regiis -ir 命令安装 ASP.NET 的版本,但不会将任何 Web 应用程序更改为此版本。 - Brettski

0

您必须将IIS注册到框架4才能正确执行它。 您必须按照以下启动菜单获取VS(已安装版本)命令提示符 开始->所有程序->Microsoft Visual Studio(已安装版本)->Visual Studio工具->Visual Studio命令提示符(已安装版本)

有关详细信息,请尝试以下链接: https://forums.asp.net/t/1587832.aspx?Problem+with+ExecuteRequestHandler+in+iis7


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接