0

오히려 이상한 문제가 있습니다. 아무 데나 대답을 찾을 수 없었기 때문에 누구나 기대해도 좋을 것 같습니다.예외가 Throw 된 Asp.Net MVC 쿠키

시나리오 : 컨트롤러 동작이 호출되고 예외가 발생합니다. 동시에 Response.Cookies에 새로운 쿠키를 추가합니다.

그러나 응답과 함께 쿠키가 전송되지 않습니다 (Fiddler even에 체크 인 됨).

재미있는 점은 웹 양식에서 일반 처리기를 사용하여 동일한 시나리오가 작동한다는 것입니다.

의견이 있으십니까?

코드는 쿠키가 컨트롤러에 OnException() 가상 메서드를 재정의하는 클라이언트로되어 전송되는 확인

[HttpGet] 
public FileContentResult MyAction() 
{ 
    HttpCookie newCookie = new HttpCookie("error-exc", "error") { HttpOnly = false }; 
    this.HttpContext.Response.Cookies.Add(newCookie); 

    throw Exception("test"); 
} 
+0

이 보이는 응답 파이프 라인. 컨트롤러 레벨에서 전역 오류 처리를 추가하거나 global.asax의 Application_OnError 이벤트를 추가 할 수 있습니다. – Dilish

답변

1

한 가지 방법을 니펫을 : 예외가 끊어처럼

protected override void OnException(ExceptionContext filterContext) { 
    filterContext.ExceptionHandled = true; 
    filterContext.HttpContext.Response.StatusCode = 500; 
    filterContext.HttpContext.Response.StatusDescription = "Internal server error"; 
    // whatever... 
    base.OnException(filterContext);  
} 
+0

호기심에서 벗어났습니다. 이렇게하면 쿠키를 포함하여 응답의 현재 상태가 유지됩니까? –

+0

@ André - AFAIK, 네. –

+0

감사합니다! 나는 똑같은 생각을하고 있었지만 아마 버그 일 뿐이라고 생각하고 예외를 남겨 둘 수 있었다. – Pavdro

관련 문제