IIS 7,HttpHandler和HTTP错误500.21

Mik*_*kee 16 asp.net iis iis-7 httphandler ihttphandler

在IIS 7上,我正在尝试将自定义HttpHandler用于我的ASP.NET Web应用程序.我使用管道模式"经典",.NET版本是4.0.30319,我的处理程序的web.config配置是:

<system.webServer>
<handlers>
    <add name="MyHandler" path="*.myExtension" verb="*" type="Company.App.UI.Controls.MyHandler, Company.App.UI" resourceType="Unspecified" />
</handlers>
</system.webServer> 
Run Code Online (Sandbox Code Playgroud)

当我调用此处理程序时,我收到此错误:

HTTP Error 500.21 - Internal Server Error
Handler "MyHandler" has a bad module "ManagedPipelineHandler" in its module list
Run Code Online (Sandbox Code Playgroud)

我做了谷歌搜索时,大多数人通过重新注册ASP.NET通过ASPNET_REGIIS.EXE/i命令解决这个问题,但这不是为我工作(在命令完成后,我重新启动IIS,但同样的错误).我在两台不同的服务器上尝试过,但结果相同.

我还应该尝试什么?谢谢

Joã*_*elo 17

无法将IIS托管处理程序配置为在经典模式下运行.如果要这样做,您应该在集成模式下运行IIS.

您可以在以下博客文章中了解有关模块,处理程序和IIS模式的更多信息:

IIS 7.0,ASP.NET,管道,模块,处理程序和前提条件

对于处理程序,如果在映射中设置了preCondition ="integratedMode",则处理程序将仅以集成模式运行.另一方面,如果设置preCondition ="classicMode",则处理程序将仅以经典模式运行. 如果省略这两个,处理程序可以在两种模式下运行,尽管这对于托管处理程序是不可能的.

  • 我遇到了同样的问题.我的服务器使用的是Window server 2008 R2,IIS 7.0.我来到这个文件夹c:\ Windows\Microsoft.NET\Framework64\v4.0.30319 \并运行此命令aspnet_regiis -i然后问题解决了. (25认同)

小智 13

幸运的是,它很容易解决.从提升的命令提示符运行以下命令:

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
Run Code Online (Sandbox Code Playgroud)

如果您使用的是32位计算机,则可能必须使用以下内容:

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
Run Code Online (Sandbox Code Playgroud)

  • 这是做什么的? (2认同)

小智 10

我有同样的问题,并通过在运行中运行以下解决

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