如何修复:处理程序“PageHandlerFactory-Integrated”在其模块列表中具有一个坏的模块“ManagedPipelineHandler”。

545

我正在配置一个MVC 3项目在本地安装的IIS上运行,遇到了以下500错误:

处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个坏模块“ManagedPipelineHandler”。

原来这是因为虽然我在“添加功能”对话框中勾选了ASP.Net,但它并没有完全与IIS一起安装。为了解决这个问题,我只需在命令提示符下运行以下命令:

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

如果我在一个32位系统上,它看起来会像下面这样:

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

我的问题是,是否有一种方法在Windows 7上安装IIS以使用.NET 4.0(MVC 3),而无需进行额外步骤?


2
这个问题实际上解决了我的问题。如果可以的话,我会将这个问题作为答案回答。 :) - Seregwethrin
是的,这个问题的描述也解决了我的问题。谢谢 :-) - sramsay
19个回答

1
  1. run cmd

  2. drag and drop Aspnet_regiis.exe into the command prompt from:

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
    
  3. type -i (for example Aspnet_regiis.exe -i)

  4. hit enter

  5. wait until the process completes

祝好运!


1

-使用应用程序初始化功能 -由于配置继承,请求错误的页面(.asp)

仅在第一个用户连接时发生500.21错误。随后的连接可以正常工作。

通过纠正.NET网站的applicationInitialization url集合来解决问题。


1
我曾经在Windows Server 2012上遇到类似的问题,通过在服务器管理器中安装"应用程序服务器"功能来解决了这个问题。

0
在某些情况下,这个错误可能是因为 ASP .NET 的 Microsoft .NET Framework 4.0 配置已经损坏导致的。如果安装了 Microsoft Visual Studio 2012 而不是 Visual Studio 2010 或 Microsoft SQL Server 2008,就会发生这种情况。
尝试了多种不同的方法后,我得出结论:通过运行以下命令修复您的 .Net 安装程序。如需更多信息,请参阅链接。
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SetupCache\v4.5.51209\setup.exe /repair /x86 /x64 /ia64 /norestart

https://msdn.microsoft.com/en-us/library/hh168535(v=nav.80).aspx


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

0

为解决此问题,请尝试修复 .net framework 4,然后运行命令。

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

在此输入图片描述


1
在发布自己的答案之前,您是否阅读了所有已发布的答案? - M. Adeel Khalid

0

对我来说,这些都没有起作用。因此,当我将各种应用程序池与一个有效的应用程序池进行比较时,我不得不进入应用程序池的高级设置,并设置

启用32位应用程序 = true

然后它就可以正常工作了!


0

在我的一个Web服务器上,当尝试将apppool从classic切换到integrated时,我遇到了这个问题。它在我的其他两个Web服务器上运行良好,但在这个服务器上不行。由于它是Server 2012版,因此无法执行aspnet_regiis,并且也没有setupcache文件夹可用于尝试修复。在功能下,所有设置都正确。

在查看了%windir%\system32\inetsrv\config\applicationHost.config之后,我发现有一个关键缺失部分。在我的不起作用的服务器上缺少以下两行:

        <add name="ManagedEngineV4.0_32bit" image="C:\Windows\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
        <add name="ManagedEngineV4.0_64bit" image="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />

我添加了它们之后,一切都运行得很好。


0

我遇到了相同的问题,在我的情况下处理程序存在于两个地方:

<system.web>
...
<httpHandlers>
 <add verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI" />
  </httpHandlers>
</system.web>

<system.webServer>
<handlers>
   ...
  <add name="FrontController" verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI"/>
</handlers>
</system.webServer>

当我将处理程序从 [system.webServer] 中移除后,我的问题消失了。


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