2010-10-19 174 views
3

我在aspx页面上有一些代码,然后当用户加载页面它开始下载一个zip。看起来是这样的:ASP.NET Response.TransmitFile第一次下载失败

  Response.ContentType = "application/octet-stream"; 
      Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileSaveName); 
      Response.TransmitFile(zipPath); 
      Response.End(); 

的问题是第一次,这是打我得到以下错误:

alt text

的zip文件存在,是不是在我的wwwroot。如果我刷新页面,文件将下载正常。

如果我换行代码在尝试捕捉我得到一个System.Threading.Threadabort异常与消息:

Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack. 

注意:每一次我居然拿到例外。我想它只是用来做Response.End

感谢您的任何帮助!

+0

我觉得对话框报告下载GetHands.aspx很奇怪。也许这是一个线索? – 2010-10-19 00:55:39

+0

添加Response.Clear()开头 – hova 2010-12-30 21:06:28

回答

0

Response.End可能会抛出一个异常,以quick'n'dirty,所​​以这很好,但是,该文件..我怀疑你的Response.End搞砸的东西了,你有没有试图做一个.Flush( )先?你可能会通过使用Fiddler来检查服务器实际返回的线索

+0

以及它的超级怪异,认为它是一个IE问题。在Firefox中工作正常。如果我第一次单击IE中的链接下载它的作品,它只是如果我复制粘贴它。 – 2010-10-19 17:53:50

+0

你有没有试过http://www.fiddler2.com/fiddler2/呢?如果没有,那就这样做。很高兴知道事情出错的地方。我在你的代码中看到一件看起来不太好的东西,我认为应该在内容处置的文件名周围有“引号” – Onkelborg 2010-10-19 18:00:13