2012-07-18 2 views
0

저는 일주일 동안 답변을 찾고 있었고 포기합니다. 나는 excelile을 작성한 다음 사용자가 TransmitFile을 사용하여 클라이언트에 다운로드하도록합니다. 문제는 이것이 대부분의 경우 완벽하게 작동하지만 Response.End 다음에 페이지가 다시로드되고 page_load가 호출 된 후 어떤 경우에 반복 될 수 있습니다. 플래그 IsPostBack은 false입니다. 이 동작은 다운로드를 중단하고 전체 응용 프로그램이 작동을 멈추고 서버에 연결하는 것을 표시합니다.TransmitFile이 page_load로 계속됩니다. 응답. 끝.

foreach (string filename in Directory.GetFiles(WebConfigurationManager.AppSettings.Get("EXCEL_PATH"))) 
{ 
    if (File.GetLastWriteTime(filename) < (DateTime.Now.AddDays(-1))) 
    { 
     File.Delete(filename); 
    } 
} 
ClsOrderFormData ofData = new ClsOrderFormData(ddOrderTypes.SelectedValue, OF.Customer.CustomerCategory); 

ClsExportOF xls = new ClsExportOF(OF.SizeDims, ofData, OF.Customer, Request.PhysicalApplicationPath, ClsPrintOrder.getOrderData().TheOrder.Articles); 
string sFileName = xls.CreateExcelFile(); 
FileInfo OutFile = new FileInfo(WebConfigurationManager.AppSettings.Get("EXCEL_PATH") + sFileName); 
Response.Clear(); 
Response.AddHeader("content-disposition", "attachment; filename=Abacus_OF_" + ddOrderTypes.SelectedItem.Text + "_" + ddCustomer.SelectedItem.Text + "_" + DateTime.Now.ToShortDateString() + ".xls".Replace(',', '-')); 
Response.ContentType = "application/vnd.ms-excel"; 
Response.TransmitFile(WebConfigurationManager.AppSettings.Get("EXCEL_PATH") + sFileName, 0, OutFile.Length); 
Response.Flush(); 
Response.End(); 

간단히 말해서. 작동하면 Response.End() 다음에 코드가 더 이상 실행되지 않습니다. 작동하지 않으면 page_load 등으로 계속 진행되고 사이트가 중단됩니다.

팁이 있습니까?

답변

관련 문제