1. ホーム
  2. asp.net

[解決済み] IIS 7、HttpHandlerとHTTPエラー500.21

2022-03-11 12:15:56

質問

IIS 7で、ASP.NETウェブアプリケーションにカスタムHttpHandlerを使用しようとしています。私はパイプラインモード"classic"を使用し、.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> 

このハンドラを呼び出すと、こんなエラーが出ます。

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

ググってみると、ほとんどの人が aspnet_regiis.exe /i コマンドで ASP.NET を再登録することでこの問題を解決しているようですが、この場合 ではない コマンドは終了し、IISを再起動しますが、同じエラーです)。2つの異なるサーバーで試しましたが、同じ結果になりました。

他に試すべきことはありますか?ありがとうございます。

解決方法を教えてください。

IISのマネージドハンドラーをクラシックモードで動作するように設定することはできません。IIS を統合モードで動作させる必要があります。

モジュール、ハンドラ、IIS モードについては、以下のブログ記事で詳しく説明しています。

IIS 7.0、ASP.NET、パイプライン、モジュール、ハンドラ、および前提条件

<ブロッククオート

ハンドラの場合、preCondition="integratedMode"と設定すると マッピングを使用すると、ハンドラは統合モードでのみ実行されます。 一方 一方、preCondition="classicMode"と設定すると、ハンドラは はクラシックモードでのみ実行されます。 また、これらの両方を省略した場合、ハンドラ は両方のモードで実行できますが、これはマネージド ハンドラ .