ファイル名に少し似た URL を処理できる ASP.NET Web API ルーティング構成にルートを追加することはできますか?
に次のエントリを追加しようとしましたWebApiConfig.Register()
が、うまくいきませんでした ( URI を使用api/foo/0de7ebfa-3a55-456a-bfb9-b658165df5f8/bar.group.json
):
config.Routes.MapHttpRoute(
name: "ContextGroupFile",
routeTemplate: "api/foo/{id}/{filetag}.group.json",
defaults: new { controller = "foo", action = "getgroup"}
);
ただし、次は機能しました(期待どおりに呼び出さFooController.GetGroup(id,filetag)
れました)( URI を使用api/foo/0de7ebfa-3a55-456a-bfb9-b658165df5f8/group/bar
):
config.Routes.MapHttpRoute(
name: "ContextGroupFile",
routeTemplate: "api/foo/{id}/group/{filetag}",
defaults: new { controller = "foo", action = "getgroup"}
);
失敗した場合、IIS エラー (404 - ファイルが見つかりません) が返され、アプリケーションの外部で作成されたように見えます。エラー ページ (IIS Express によって生成された) には、次のエラーの詳細が含まれていました。
Module = IIS Web Core
Notification = MapRequestHandler
Handler = StaticFile
Error Code = 0x80070002
これは、「StaticFile Handler」と呼ばれるものが、コードに到達する前にリクエストを取得したことを意味していると思います。大きな問題は次のとおりです。それを防ぐ方法はありますか?