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);
}
は編集:私はローカルサービスにヒットした場合、本体は含まれています。リモートマシンからサービスを起動するときに問題があるようです。
項目プロパティが移入されている方法は? – cecilphillip
例外がスローされ、項目が空でない場合に設定されます。 – Thad
要求のようなサウンドがWeb APIパイプラインに作成されていない可能性があります。これらが正しいことを確認するには、到着したリクエストがApiController実装に転送される前に、それらのリクエストを記録するメッセージハンドラを追加することができます。このコードは[このSOの回答](http://stackoverflow.com/questions/10434389/webapi-authorization-filter-with-token-in-json-payload/10435013#10435013)の認証ハンドラのようなものになります。それを登録する方法も示しています。 –