ステートレス Web API でコントローラー メソッドのグローバル例外処理を処理するにはどうすればよいですか? 私の目標は、コントローラー内の try/catch ステートメントの冗長性を避けることです。
に登録したカスタム ExceptionHandler を使用して、IIS がホストする Web API でこれを実現できましたWebAPIConfig.cs
。これは、OWIN がホストする API (Service Fabric など) ではすぐには機能しません。そこで、SF ステートレス Web API で、Owin ミドルウェアを作成し、そのミドルウェアを登録しましStartup.cs
たが、動作しません。ミドルウェア コードの応答パイプラインで catch ブロックが無視されます。
...
public override async Task Invoke(IOwinContext context)
{
try
{
//It goes here
await Next.Invoke(context);
}
catch (Exception ex)
{
//This catch block does not get called????
HandleException(ex, context);
}
}