1

アクションが呼び出されて特定の例外がスローされると、ExceptionFilterAttributeを使用して、エラーをHttpStatusCode.BadRequestとして別の応答に変換します。これはローカルで機能していましたが、サーバーにプッシュしました。BadRequestを取得しても、応答に情報が表示されません。私は何が欠けていますか?

    public override void OnException(HttpActionExecutedContext actionExecutedContext)
    {
        MyException ex = actionExecutedContext.Exception as MyException;
        if (ex == null)
        {
            base.OnException(actionExecutedContext);
            return;
        }

        IEnumerable<InfoItem> items = ex.Items.Select(i => new InfoItem
                                                                       {
                                                                           Property = i.PropertyName,
                                                                       Message = i.ToString()
                                                                   });

    actionExecutedContext.Result = new HttpResponseMessage<IEnumerable<InfoItem>>(items, HttpStatusCode.BadRequest);
  }

編集:ローカルでサービスをヒットすると、本文が含まれます。問題は、リモートマシンからサービスを利用する場合にあるようです。

4

1 に答える 1

2

これを試して:

GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = 
            IncludeErrorDetailPolicy.Always
于 2012-05-14T11:53:41.347 に答える