プロジェクトの.DLLに埋め込まれたリソースであるJavaScriptファイルを提供するHttpHandlerを作成する必要があります。ビュー内の参照はそのようなリソースを直接見ることができないため、パス/ js / [file]でリクエストをインターセプトし、一致する埋め込みファイルを見つけてスクリプトを返すHttpHandlerモジュールを使用することを計画しました。
問題は、web.configのセクションでさまざまな設定を試しても、HttpHandlerコードが呼び出されないことです。私は明らかに何かが欠けていますが、エラーメッセージがないのでそれが何であるかわかりません。私が今までに得たのは、静的ファイルハンドラーからの404だけです。
Q1)明らかな何かが欠けていますか?
Q2)IISにハンドラーを呼び出さない理由を教えてもらう方法はありますか?
概要:ASP.NET MVC4アプリケーションのIISExpress(v8)でテストしています。
IHttpHandlerを実装する単純なライブラリを作成し、テストMVCアプリケーションでこれへの参照を追加し、web.configに次の行を追加しました。
<system.webServer>
<validation validateIntegratedModeConfiguration="true" />
<handlers>
<add name="ejs" path="js/*" verb="*" type="EmbeddedJsHandler.EmbeddedJsHandler, EmbeddedJsHandler" preCondition="integratedMode" />
ライブラリはそこにありますが、呼び出されることはありません。/js/test.jsなどを使用したリクエストは、404エラーになります。
これまで、ハンドラーコードでさまざまな構成と設定を試してきました。preCondition、resourceType = "Unspecified"、modules = "IsapiModule" scriptProcessor = "%windir%\ Microsoft.NET \ Framework \ v4.0.30319\aspnet_isapi.dll"を試しました
私はパスを試しました:
js/*。js js / * js /*.*
(system.webServerの)統合モード設定セクションが使用されていることを確認し、使用されていることを確認しました。
私はスタックオーバーフローで同様のケースを検索し、考えられる解決策の多くを試しました。それでも喜びはありません。
ジョン・スキートでさえこの種の問題を抱えています! IHttpHandlerが呼び出されないのはなぜですか?