Developer2011.05.24 13:32

 

파일을 출력하는 과정 중 Response.End()에서 발생된 HttpException

 

영문의 경우는 아래와 같이 출력됩니다.

 

Exception Type:System.Web.HttpException
The remote host closed the connection. The error code is 0x80072746.

 

 

위치: System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect)
위치: System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush()
위치: System.Web.HttpResponse.Flush(Boolean finalFlush)
위치: System.Web.HttpResponse.End()
위치: HPW.Portal.Common.SPWeb.Layouts.MultiFileUpload.MultiDownLoad.Page_Load(Object sender, EventArgs e)
위치: System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
위치: System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
위치: System.Web.UI.Control.OnLoad(EventArgs e)
위치: Microsoft.SharePoint.WebControls.UnsecuredLayoutsPageBase.OnLoad(EventArgs e)
위치: Microsoft.SharePoint.WebControls.LayoutsPageBase.OnLoad(EventArgs e)
위치: System.Web.UI.Control.LoadRecursive()
위치: System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

해결 방법은 아래와 같은 코드로 가능합니다.
 

if (Response.IsClientConnected)
{
	Response.End();
}

 

이 녀석이 끊어지는 이유는 아래와 같습니다. (여기를 선택하여 이동)

  • 클라이언트 연결이 종료된 경우. Close 메서드가 호출되었거나 클라이언트가 웹 페이지 실행을 중지했거나 다른 페이지로 이동한 경우 연결이 종료될 수 있습니다.

  • 요청을 처리 중인 HttpWorkerRequest 개체가 null이거나 HttpWorkerRequest.IsClientConnected 메서드에서 false를 반환하는 경우. 사용자 지정 HttpWorkerRequest 개체가 요청을 처리하는 경우 사용자 지정 기준에 따라HttpWorkerRequest.IsClientConnected 메서드를 설정할 수 있습니다. 예를 들어, 사용자 지정 작업자 요청에서 일정 기간 후에 시간 초과를 강제할 수 있습니다.

 

이상입니다.

 


Posted by Angeleyes

Ask me를 이용하시면 댓글보다 빨리 답변 드릴 수 있습니다.

댓글을 달아 주세요

  1. 위 에러는 서버측 로그에 남는건가요.?
    별로 상관없는거 아닌가요..???

    2011.05.24 14:04 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 아마 클라이언트 쪽에 크게 영향은 없을텐데요.

      일단 Exception을 그냥 살려둘 수 없죠~

      2011.05.24 18:59 신고 [ ADDR : EDIT/ DEL ]