Response.End()
은 ThreadAbortException
을 생성합니다.Response.End() 대신 Response.Flush()를 사용할 수 있습니까?
대신에 HttpContext.Current.ApplicationInstance.CompleteRequest
을 사용하면 문제가 해결되지 않습니다.
그래서 우리는 버퍼에 있지만 페이지의 처리를 중지하지 않는 것을 브라우저에 전송되는 대신 Response.End()
Response.End()
은 ThreadAbortException
을 생성합니다.Response.End() 대신 Response.Flush()를 사용할 수 있습니까?
대신에 HttpContext.Current.ApplicationInstance.CompleteRequest
을 사용하면 문제가 해결되지 않습니다.
그래서 우리는 버퍼에 있지만 페이지의 처리를 중지하지 않는 것을 브라우저에 전송되는 대신 Response.End()
Response.Flush()
의 Response.Flush()
을 사용할 수 있습니다, 그래서 다음 단계의 실행을 계속합니다.
Response.End()
은 무엇입니까 은 asp.net 페이지 수명주기에서 다음 함수 호출시 실행 단계를 중지하는 것입니다. http://msdn.microsoft.com/en-us/library/ms178472.aspx
그 이유는 호출의 시리즈의 루프 밖으로 던져 예외를 throw해야합니다.
하나의 대안은 Response.Close()
이지만 실행 단계를 중지하는 것이 아니며 브라우저와의 연결 종료 후 무언가를 보내려는 경우 다른 오류가 발생할 수 있습니다. Response.Close()
을 수행하는 경우 전화하기 바로 전에 Flush()
을 수행해야합니다. 그렇지 않으면 브라우저에서 예기치 않은 데이터를 가져옵니다.
당신은 또한 읽을 수 있습니다 Redirect to a page with endResponse to true VS CompleteRequest and security thread
사용을 조건을 다운로드하기 전에 파일 Response.IsClientConnected
-
if (Response.IsClientConnected)
{
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "Application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.TransmitFile(Server.MapPath(@"yourpath" + fileName));
Response.Flush();
Response.Close();
}
이 잘 투쟁의 많은 후 나를 위해 일하고 있습니다. 나는 그것이 당신을 위해 또한 작동하기를 바랍니다.