ExceptionInterceptor
操作の呼び出しをtry
/でラップして、catch
例外処理を集中化する を作成しました。私がやりたいことは、HTTPステータスコードの処理を一元化することですが、.NETからHTTPステータスコードを設定できないようですIOperationInterceptor
. 私のインターセプターはICommunicationContext
依存関係を取り、それOperationResult
を egOperationResult.BadRequest
に設定しますが、OpenRasta はまだログに次のように書き込みます:
Step into: Stepping over non-user code 'OpenRasta.Pipeline.PipelineRunner.RunCallGraph'
38-[2011-07-08 09:11:37Z] Start(1) Entering PipelineRunner: Executing contributor OperationResultInvokerContributor.RunOperationResult
38-[2011-07-08 09:11:37Z] Information(0) Executing OperationResult OperationResult: type=OK, statusCode=200.
また、明示的に設定しようとしましIResponse.StatusCode
たが、効果はありません。応答したい ResponseResource は有効なリソースが登録されているためResourceSpace
(URI はありませんが)、ステータス コードは無視され、通常のレンダリング パイプラインは「これで問題ありません」と考えて先に進みます。
OpenRasta が StatusCode を無視するのはなぜですか?