2012-05-07 12 views
1

アクションが呼び出され、特定の例外がスローされると、エラーをHttpStatusCode.BadRequestと異なる応答に変換するExceptionFilterAttributeを使用します。これはローカルで動作していますが、サーバーにプッシュしましたが、BadRequestを取得した時点で、私は返信の情報を取得しません。私は何が欠けていますか?Mvc4 WepApi空の応答が200以外の場合

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); 
    } 

は編集:私はローカルサービスにヒットした場合、本体は含まれています。リモートマシンからサービスを起動するときに問題があるようです。

+0

項目プロパティが移入されている方法は? – cecilphillip

+0

例外がスローされ、項目が空でない場合に設定されます。 – Thad

+0

要求のようなサウンドがWeb APIパイプラインに作成されていない可能性があります。これらが正しいことを確認するには、到着したリクエストがApiController実装に転送される前に、それらのリクエストを記録するメッセージハンドラを追加することができます。このコードは[このSOの回答](http://stackoverflow.com/questions/10434389/webapi-authorization-filter-with-token-in-json-payload/10435013#10435013)の認証ハンドラのようなものになります。それを登録する方法も示しています。 –

答えて

2

はこれを試してみてください:

GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = 
      IncludeErrorDetailPolicy.Always 
関連する問題