2011-08-12 15 views
7

IIS7.5の設定(system.webServer/handlers)を見ています。web.configのハンドラのパス属性の意味

\*.\*の違いは、ハンドラのpath引数に何があるのでしょうか。 file.*(file.txtとfile.xmlに一致する)またはabc.a?c(abc.abcとabc.ascに一致する)を使用できますか?

path引数は "folder"を参照できますか? \*\f4\*.txtのように?

はパス引数が一致しようとする部分が何であるかを

GET \f1\f2.f3\f4\a.b.c?arg1.arg2.arg3=3&arg4.txt=1.4 

のようなHTTPリクエストを考えると?

答えて

7

**.のパスは、実際にはURL内のパターンと一致する意味での「ワイルドカード」マッピングではありません。

ハンドラは、サイトのHTTPハンドラで既に指定されているパス(または動詞/前提条件)と一致しないすべてのコンテンツの要求を処理します。 HTTPハンドラリストは実際には順序付けられたリストです。パス別に並べ替えると、IIS7のMMCの既定のビューが誤解を招く可能性があります。実際の処理順序を確認するには、右側の[操作リスト]の[*オーダーリストの表示]リンクをクリックする必要があります。

*ハンドラが最後に来て、ハンドラはStaticFileハンドラと呼ばれています。彼らだけが、通常の動作下で実行されていないとして、あなたは一般的に無視することができTRACEOPTIONS動詞への対応などTRACEVerbHandlerなどいくつかの他とOPTIONSVerbHandlerがあるかもしれません。

*.ハンドラは、ASP.NET 4.0に固有のものであり、 ASP.NET 4.0をインストールするときに追加されます。このハンドラは、無限URLのサポートを提供するために用意されています。あなたはKB980368 hotfix(これはWindows 2008R2/Windows 7 Service Pack 1にも組み込まれています)をインストールすると有効になります。 *.ハンドラと拡張子のURLに関するThomas Marquardtによって偉大な記事のカップルがあります

How ASP.NET MVC Routing Works and its Impact on the Performance of Static Requests
How Extensionless URLs Are Handled By ASP.NET v4

あり、それらの記事に最初に吸収するためにかなり多くのだとあなたが必要があるかもしれませんIIS7のパイプラインの基本を再訪して、彼らの周りに頭を浮かべるようにしました。

関連する問題