首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET TransmitFile导致网站被阻止

ASP.NET TransmitFile导致网站被阻止
EN

Stack Overflow用户
提问于 2010-06-29 09:05:34
回答 1查看 772关注 0票数 1

每当我使用TransmitFile发送文件时,用户的sirte就会被阻塞,直到文件完成为止。现在,用户不能浏览该站点。

如果用户取消传输,它仍然会被阻止,直到站点超时或完成数据发送。我不知道是哪一个,但我知道如果我在开始下载后立即取消了一个30MB的文件,它需要比10MB的文件更长的时间来恢复。

相关代码如下:

代码语言:javascript
复制
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", contdisp);
Response.AddHeader("Content-Length", new FileInfo(fullfilename).Length.ToString());
Response.TransmitFile(fullfilename);
Response.Flush();
EN

回答 1

Stack Overflow用户

发布于 2010-07-01 03:50:33

解决了这个问题,我最好把它贴出来,以防我再次遇到这个问题,或者其他人也有这个问题。

这个问题是由我的页面使用会话数据这一事实引起的。我的下载页面需要这个会话数据来记住某些事情,如排序,搜索词等。我应该注意到,页面还显示文件并在单击按钮时运行上面的代码。

因此,当我的下载代码(上面的代码片段)运行时,传输受到IIS的保护,以确保会话数据保持不变。这是因为它应该在正常的页面导航下,但显然不希望文件传输。

通过将下载代码移出该页面并放入没有会话数据的页面中,可以在用户愉快地继续浏览站点的同时进行下载。

我还使用Page指令中的EnableSessionState="False"创建了新的下载页面,以确保它不会使用该会话。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3137186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档