ステートレスWeb APIのコントローラメソッドに対してグローバル例外処理をどのように処理する必要がありますか?私の目標は、コントローラ内のtry/catchステートメントの冗長さを避けることです。サービスファブリックのグローバルエラー処理ステートレスWeb API
私はWebAPIConfig.cs
に登録したカスタムExceptionHandlerを使用して、IISがホストするWeb APIでこれを実現できました。これは、OWINでホストされているAPI(Service Fabricなど)で正しく機能しません。 SFステートレスWeb APIでは、私はOwinミドルウェアを作成し、そのミドルウェアをStartup.cs
に登録しましたが、動作しません。 catchブロックは、ミドルウェアコードの応答パイプラインでは無視されます。そこに似たquestonsのかなり多くがあったので、
...解決策を掘るたくさんの後
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);
}
}
あなたは**カスタムの 'ExceptionLogger/Handler'を使うことができます(自己ホスト型でもIISでもホスト型ではありません) –