3

私が持っているものと私が達成しようとしていることの情報

私は ServiceStack を使用しており、必要に応じて稼働していますが、キャッチされていない例外の本文/コンテンツを無効にする方法を見つけることができません。

ServiceStack ですべてのルートを処理しています。

ServiceStack にマップされていないルートに移動すると、404 (完全) の StatusCode と、"Handler for Request not found: ...." の応答の本文にコンテンツが表示されます。

私のコードがキャッチされていない例外をスローした場合、ServiceStack は関連する StatusCode を親切に返しますが、ErrorCode と Message が入力された ResponseStatus も返します。

DebugMode をオフにすると、StackTrace が無効になりますが、例外の応答の本文全体を完全にミュートしたいと考えています。

私が試したこと

次の応答フィルターを試しました。

ResponseFilters.Add((req, res, dto)) =>
{
    if (dto is Exception) res.Close();
});

残念ながらうまくいきませんでした。

避けたいこと

try{
    return service.GetResponse();
} catch (Exception) {
    return new HttpResult(.....);
}

私の質問

キャッチされていないすべての例外の応答本文を無効にするにはどうすればよいですか? それでも StatusCode を返しますか? 本体に null を返し、StatusCodes はそのままにしておきたいと思います。

質問を明確にするように努めましたが、少しでも漠然としている場合は、質問してください。

4

1 に答える 1

1

をオーバーライドすることで、デフォルトの例外処理動作をオーバーライドできるはずHandleExceptionですServiceBase

デフォルトの実装はhttps://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.ServiceInterface/ServiceBase.cs#L228で確認できます。

于 2012-08-21T12:22:57.180 に答える