모든 오류에 대해 json 오류 응답을 생성하는 데 사용하는 사용자 지정 개체를 만들었습니다. 내가 가지고있는 문제는 내가 잡을 수없는 몇 가지 오류가 있다는 것입니다. 내가 작업을 호출하려고하면 예를 들어, 기본 응답은 GET 지원하지 않는ASP.NET 모든 표준 http 오류 응답을 재정의합니다.
{ "메시지": ". 요청 된 자원이 'GET' HTTP 메서드를 지원하지 않습니다"}
괜찮습니다.하지만 형식을 제어하고 싶습니다. 이 모든 단일 자동화 된 오류를 제어 할 싶습니다 그래서 아무것도 출력 출력되고 싶지 않아 있는지 확인할 수 있습니다. 나는 코드 예외가 발생했다면 클라이언트에게 알릴 수 있어야한다.
이걸 찾았는데이게 내가 찾고있는 것 같지만, 이걸로 맞출만한 행동이 없어서 오류를 잡는 것 같지 않아. How to override all standard error pages in WebAPI
나는 이것을 구현하려고 시도했지만, 나는 메인 컨트롤러에 이것을 가지고 있어도 여전히 위에서 같은 에러 메시지를 얻는다.
[AllowAnonymous]
[ActionName("405")]
[HttpGet]
public string Status405()
{
return "error";
}
나는 모든 것을 무시할 수있는 onerror 이벤트 나 catch가 모두 필요할 것이라고 기대하고있었습니다. 나는이 나던 작품 중 하나 HttpResponseEx
public class ErrorFilter : System.Web.Http.HttpResponseException
{
public override string Message
{
get
{
return "My custom response based on whatever params are in this error";
}
}
}
을 기반으로 작동하도록 시도하고 트리거 얻을 모든 이벤트를 활용 나던로 내가 왜 볼 수 있습니다.
분명히 할 수있는 방법이 있습니다. 정상적으로 어떻게 이루어 집니까?
이것은 IIS가 처리하는 메시지에만 적용됩니까? 예를 들어 누군가가 디렉토리에 액세스하려고하면 iis는 403을 표시합니다.이 시나리오에서는 실제 컨트롤러가 IIS가 아닌이 응답을 생성하는 것 같습니다. –
유효한 포인트. global.asax 파일에서 다음을 확인하십시오. public static void RegisterGlobalFilters (GlobalFilterCollection filters) { filters.Add (new HandleErrorAttribute()); } 기준 : http://stackoverflow.com/questions/8128302/custom-error-handler-for-http-error-405-in-mvc –