出错信息:服务器无法在发送 HTTP 标头之后清除标头

abz7676 2016-10-18 11:59:28
我在做一个功能,功能为出现进度条之后再下载文档

代码:





jsBlock = "<script>EndTrans('已经完成100%');</script>";
System.Web.HttpContext.Current.Response.Write(jsBlock);
System.Web.HttpContext.Current.Response.Flush();
System.Threading.Thread.Sleep(20);

// 处理完成
jsBlock = "<script>EndTrans('导出完成,请等待下载');</script>";
System.Web.HttpContext.Current.Response.Write(jsBlock);
System.Web.HttpContext.Current.Response.Flush();

// 用时
endTime = DateTime.Now;
System.Web.HttpContext.Current.Response.Write(jsBlock);
System.Web.HttpContext.Current.Response.Flush();


Response.Clear();

Response.ClearHeaders();

Response.Buffer = false;

Response.ContentType = "application/octet-stream";

Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.Name, System.Text.Encoding.UTF8));

Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());

Response.WriteFile(DownloadFile.FullName);

Response.Flush();

Response.End();






断点追踪到Response.ClearHeaders()这一句出的错:服务器无法在发送 HTTP 标头之后清除标头

求解决这个问题的方法

...全文
283 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2016-10-18
  • 打赏
  • 举报
回复
在你这个流程中实现不了你这个功能,那个下载提示的功能的去掉,就是 Response.Buffer = false;之前的的都删除

要么你就输出js跳转到另外的页面下载,另外那个页面不要下载提示的

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧