모든 예외를 가로 채려고하지만 코드가 실행되지 않습니다. 나는 이걸 GlobalFilters
에 넣으려고 시도했고 또한 직접 내 방식에 적용했다.ASP NET MVC OnException이 호출되지 않습니다. ApiController
내 속성 :
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
public class HandleExceptionAttribute : HandleErrorAttribute {
private ILog log = LogManager.GetLogger(typeof(HandleExceptionAttribute));
public override void OnException(ExceptionContext filterContext) {
log.Info("inside on exception"); // this never appears
}
}
내 클래스 : 0으로
public class Tester {
[HandleException]
public void Except() {
var asd = 0;
var qwe = 1/asd;
}
}
나누 나에게 예외를주고, 내 디버거 나는 계속하지만, 아무것도 로그 파일에 기록되지, 그것을 잡는다.
로거가 작동합니다. 다른 로그가 파일에 나타납니다. 디버깅을 사용하지 않더라도 로그 파일을 읽지 않으므로 디버거 오류가 아닙니다.
IIS Express에서 실행 중입니다. Windows 7
편집 :
컨트롤러로 이동했습니다. 여전히 작동하지 않음
public class UserController : ApiController {
private ILog log = LogManager.GetLogger(typeof(UserController));
[HandleException]
[CheckModelForNull]
[ValidateModelState]
public object Post([FromBody]User user) {
var asd = 0;
var qwe = 1/asd;
return new HttpStatusCodeResult(HttpStatusCode.OK);
}
}
필터 만 속성 pply 액션 & 컨트롤러. 당신은 AoP를 찾고 있을지도 모릅니다. – SLaks
질문과 대답을 위해 +1 – SLaks
@SLaks 내 편집을 참조하십시오. – Jaanus