1
조치가 호출되어 특정 예외가 발생하면 해당 오류를 HttpStatusCode.BadRequest와 다른 응답으로 변환하는 ExceptionFilterAttribute를 사용합니다. 이것은 로컬에서 작동하지만 서버에 밀어 넣었습니다. 이제 BadRequest를 얻었을 때 응답 정보가 표시되지 않습니다. 내가 뭘 놓치고 있니?Mvc4 WepApi 비어 있음 응답이 아닌 경우
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
요청과 같은 소리가 웹 API 파이프 라인에 생성되지 않을 수 있습니다. 그것들을 확인하기 위해 ApiController 구현으로 라우트되기 전에 들어오는 요청을 기록하는 메시지 핸들러를 추가 할 수 있습니다. 이 코드는 [이 SO 답변] (http://stackoverflow.com/questions/10434389/webapi-authorization-filter-with-token-in-json-payload/10435013#10435013)의 인증 처리기와 비슷할 것입니다. 등록 방법도 보여줍니다. –