如何解决错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误的模块“ManagedPipelineHandler”?

6

使用IIS7.5,在Visual Studio中网站正常工作,但是当我尝试在IIS上部署时,出现以下错误。

模块IIS Web Core
通知ExecuteRequestHandler
处理程序PageHandlerFactory-Integrated
错误代码0x8007000d
请求的URL http://localhost:80/EFT/default.aspx
物理路径C:\inetpub\wwwroot\EFT_Converter\default.aspx
登录方法Anonymous
登录用户


这乍一看像是一个重复的问题,与https://dev59.com/f2w15IYBdhLWcg3wFHpZ相似;当然其他用户也可能会发现那篇文章有用... - Owen Blacker
6个回答

20

您使用的 .Net 版本未正确注册到 IIS 中。 如果是在 64 位 2008 服务器上使用 .Net 版本 4,请使用以下两个命令进行修复。

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

还值得检查应用程序池是否设置为正确的框架,以及iis应用程序实际上是否指向您的文件夹。 - BornToCode

6

在Windows上打开命令提示符并运行:

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

这将解决您的问题。

2
在web.config中定义处理程序的位置,在列表中的第一项之前添加<clear />,如果列表中没有,请注意确保运行网站的应用程序池与您在代码中针对的.Net版本相同。

我的web.config中实际上没有指定处理程序,而且web.config中的.NET版本是正确的。 - StevieB
在IIS中,你的应用程序池设置为.Net 2.0还是4.0?这应该与你的web.config文件中的设置相匹配。应用程序池使用的.Net版本是在IIS中设置的,而不是在你的web.config文件中。 - Derreck Dean
它在IIS中设置为4,与我的web.config中所说的相匹配。 - StevieB

0
我曾经遇到过这个问题,发现删除以下文件夹可以解决问题,即使是非Express版本。Express:
C:\Users\\Documents\IISExpress

0
请查看this帖子。
从帖子中:
  1. 单击“开始” ->“所有程序” ->“附件” ->“运行” 在打开的文本框中粘贴以下行(请参见此处列出的所有.NET Framework版本安装、修复和卸载命令行):

对于使用.Net Framework版本4.0.30319的32位计算机进行静默修复,请使用:

%windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart

对于使用 .Net Framework 版本 4.0.30319 的 64 位计算机进行静默修复,请使用:

%windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart

2. 点击确定开始修复。 3. 修复运行几分钟后,我重新启动了IIS 7.5,事情开始正常工作!


0
尝试以以下方式设置Web配置文件:
<system.webServer>
      <validation validateIntegratedModeConfiguration="false" />
</system.webServer>

确保您已正确安装了ASP.NET。您应该看到名为“ASP.NET 4”或类似名称的默认应用程序池。如果它不像ASP.NET安装正确,请尝试在.NET 4 CMD中运行aspnet_regiis -i。


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