イメージリクエストを処理する.NETコントローラがあります。なぜHTTP HEAD要求がroutes.MapRoutes()によってキャッチされないのですか?HTTP GETは何ですか?
私はHTTP GET
要求を実行すると、私は次のRouteConfig
ルール
routes.MapRoute()
name: "Images",
url: "image/get/{filename}/{width}/{height}",
defaults: new { controller = "Image", action = "Get" }
);
を持ってhttp://localhost/images/1809x1280/image1.jpg
http://localhost/image/get/image1.jpg/1809/1280
に変換し、web.configファイル内のURLの書き換えルールがあり、アクションが正しくされています正しいコントロールにルーティングされ、私は応答を得ますが、HTTP動詞をGET
からHEAD
に変更すると、私はHTTP/1.1 404 Not Found
という応答を受け取ります。
私のImageController.Get()
メソッドにブレークポイントを設定したところ、HTTP GET
要求のみがヒットしていることに気付きました。
が、その後Global.asax.cs
のApplication_BeginRequest
内のブレークポイントを置いた、ブレークポイントが両方HTTP GET
とHTTP HEAD
要求のためにヒットします。
要求私はRequest
オブジェクトの以下の特性を有していたHTTP HEAD
た:正しいとweb.config
書換え規則がで蹴られたことを示す
RawUrl "/images/1809x1280/image1.jpg" string
Url {http://localhost/image/get/image1.jpg/1809/1280} System.Uri
しかしImageController.Get()
を決してヒットしません。
この時点でroutes.MapRoute()
に問題があるようですが、どうやって調査するのかよく分かりません。
をあなたがあなたのケーキを焼いて、それがあまりにも食べ –
それはそうだ:) –