質問に文脈を与えるために、私はApplication_BeginRequestで呼び出されたプロファイラを作成しましたが、すべて(つまりjavascript、画像など)をログに記録しています。最後の手段として、プロファイラクライアントにフィルタリングを追加することは可能ですが、要求がルーティングを必要とすると判断できる場合はプロファイラをアクティブ化するだけです。理想的には、それはApplication_BeginRequestにありますが、ルーティングの着信要求の冗長処理なしでは可能ではないと思います...ASP.NET MVC - 静的リソースリクエストを検出できるリクエストサイクルの最も初期のポイントは何ですか?
要するに、要求ライフサイクルの中で最も早い時点要求が静的なリソースのためのものかどうか、そしてそれについてどうやって行くのですか?
System.Web.Routing.RouteTableから派生したり、そこからプロファイラコードを呼び出すことは可能でしょうか?
Request.PhysicalPathアプローチの問題点は、要求がファイル名に直接マップできる場合は要求が静的であると想定し、そうでない場合は静的要求ではないことを前提としています。たとえば、誤った名前のリンクや削除されたイメージファイルへの参照が、ファイルがディスク上に存在しないという理由だけで非静的リンクとして解釈されることは望ましくありません。 – nathanchere
あなたのコードでは、このケースを判別するためにレスポンスコードをチェックすることができます(動的ファイルが見つからない場合でも同じことが言えます)。ファイルタイプの前提条件を設定するか、またはすべてのマッピングに対してiisまたはappsの設定を問い合わせる必要があるかどうかを真に検出するには技術的には、.jsをaspnet_isapiや他のhttphandlerにマッピングするだけで、.jsを動的なファイルにすることができます。どこで線を描きたいのですか? –