WebApi Preview 5(WCFの一部であった場合)を使用して開発されたプロジェクトを、WebApiの最終リリース(MVC4の一部)に移行しています。プロセスを説明するドキュメントがありますが、それは非常に単純であり、ほとんどの問題をカバーしていません。
今私が直面している問題の1つは、GlobalErrorHandlerがHttpErrorHandlerから継承し、 OnTryProvideResponseをオーバーライドすることによって作成され、Elmahでエラー処理をフックするために使用されたことです。これで、次のような行でAppStartに登録されました。
var configuration = new WebApiConfiguration();
//some other configuration for security and CreateInstance
configuration.ErrorHandlers =
(handlers, endpoint, description) => handlers.Add(new GlobalErrorHandler())
};
//then some registration
RouteTable.Routes.MapServiceRoute<SomeObject>("routeName", configuration);
次に、この構成に別のルートをマッピングします。このコードはすべて、MVC4 WebApiの新しい世界では機能しません。HttpErrorHandler間に競合があり、そのメンバーを適切に実装することさえできないようです。
ElmahをWebApiに登録する方法に関する一般的な投稿を見てきましたが、可能な限り元のコードに固執しようとしています。Microsoftが持っていたものと直接同等のものがあると思います。プレビューバージョンと最終バージョンでリリースされたもの。だから私の質問:
- ASP.NET MVC4 WebApiでのこのグローバルエラー処理登録に相当するものは何ですか?
- ここで行うのと同じ方法で構成を行う必要がありますか(デフォルトのwebapiサンプルプロジェクトには同様のコードがないようです)
- そのルート登録行のコードに相当するものは次のとおりです。RouteTable.Routes.MapServiceRoute( "routeName"、configuration);