2016-10-31 6 views
0

をresponse.flushを使用しながらExcelをダウンロードすることができません(その原始コードとその周り10000行に対して正しく動作)行ごとに

fileName = excelTemplate+".xls" 
Response.Write "<html><body><table>" 
For Loop for more then 150000 Rows 
{ 
    Response.Write "<tr><td>..........</td></tr>" 
} 
Response.Write "</table></body></html>" 
Response.AddHeader "content-disposition", "attachment; filename=""" & fileName & "" 
Response.Charset = "UTF-8" 
Response.ContentType = "application/vnd.ms-excel"   
Response.Flush 

私はバッファサイズエラーにASPページの(実行を取得しています応答バッファがその設定された制限を超えることが原因)

私はループ内Response.Flushを試してみました:。

For Loop for more then 150000 Rows 
{ 
    Response.Write "<tr><td>..........</td></tr>" 
    Response.Flush 
} 

今私はダウに可能なサイズ制限の問題を取得しなくはないのです

この問題の別の修正点は、IISからバッファサイズを増やすことですが、いくつかのブログがあるかどうかを知りたいと思ったことがわかりました。この問題へのOTHR代替..

+0

が必要になります。このエラーは、IISで発生しますか?その場合、どのバージョンのIISが使用されていますか? – JohnH

+0

@John私はIIS 7を使用しています – Scorpio

+0

フラッシュする代わりにバッファをオフにしましたか?あなたのASPページで '<%Response.Buffer = False%>' –

答えて

0

あなたが最初のResponse.Write前Response.ContentTypeの、Response.Charsetを& Response.AddHeaderを移動する

<% 
    Response.Buffer = True 
    ... 
    fileName = excelTemplate+".xls" 
    Response.AddHeader "content-disposition", "attachment; filename=""" & fileName & "" 
    Response.Charset = "UTF-8" 
    Response.ContentType = "application/vnd.ms-excel"   
    Response.Write "<html><body><table>" 
    For Loop for more then 150000 Rows 
    { 
     Response.Write "<tr><td>..........</td></tr>" 
     Response.Flush 
    } 
    Response.Write "</table></body></html>" 
    Response.Flush 
%>