经典ASP IIS 6超出响应缓冲区限制

时间:2014-02-12 21:48:15

标签: asp.net iis asp-classic

我有一个Classic ASP应用程序,允许用户下载第三方供应商提供的excel文档。以下是示例代码。如果文档大小大于4mb,我收到错误“超出响应缓冲区限制”。

我做了一些研究并尝试了不同的东西。只增加IIS中的缓冲区限制解决了我的问题。但我的系统团队不愿意在生产中进行此更改。

有替代解决方案吗? ASP.Net中是否有可用的解决方案?

    set objDoc = Server.createobject("Some.Object")
    objDoc.DocId doc_id
    bin_obj = objDoc.Binary
    set objDoc = Nothing

    Response.buffer = TRUE
    Response.ContentType = "application/msexcel"
    Response.AddHeader "Cache-Control", "public"
    Response.AddHeader "Pragma", "public"   
    Response.AddHeader "Content-Disposition", "attachment;filename=test.xls"
    Response.BinaryWrite bin_obj
    Response.Flush
    Response.End

1 个答案:

答案 0 :(得分:0)

你需要按部分推送内容,例如。每块1Mb。如果您的COM对象("Some.Object")不允许逐块读取,则可以使用方法ADODB.Stream的{​​{1}}对象进行对象。

更新:

stream.Read(count)