1

ステートレス 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);
    }
}
4

1 に答える 1