2012-05-07 4 views
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); 
    } 

편집 : 서비스를 로컬로 방문하면 본문이 포함됩니다. 문제는 원격 시스템에서 서비스를 실행하는 것입니다.

+0

방법 항목 속성이 채워되고있다? – cecilphillip

+0

예외가 발생하고 항목이 비어 있지 않으면 설정됩니다. – Thad

+0

요청과 같은 소리가 웹 API 파이프 라인에 생성되지 않을 수 있습니다. 그것들을 확인하기 위해 ApiController 구현으로 라우트되기 전에 들어오는 요청을 기록하는 메시지 핸들러를 추가 할 수 있습니다. 이 코드는 [이 SO 답변] (http://stackoverflow.com/questions/10434389/webapi-authorization-filter-with-token-in-json-payload/10435013#10435013)의 인증 처리기와 비슷할 것입니다. 등록 방법도 보여줍니다. –

답변

2

이 시도 :

GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = 
      IncludeErrorDetailPolicy.Always 
관련 문제