首页 新闻 会员 周边 捐助

由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值?

0
悬赏园豆:50 [已解决问题] 解决于 2015-04-23 12:03

Response.Clear();
Response.AddHeader("content-disposition", "filename=" + HttpContext.Current.Server.UrlEncode("批量文件" + DateTime.Now.ToString("D")) + ".zip");
using (ZipFile zip = new ZipFile(System.Text.Encoding.Default))//解决中文乱码问题
{
    if (ds.Tables[0].Rows.Count > 0)
       {
          foreach (DataRow row in ds.Tables[0].Rows)
             {
                string tempPath = row["FilePath"].ToString().Replace('\\', '/');
                string mapPath = Server.MapPath("/Download/" + tempPath);
                zip.AddFile(mapPath, "");
              }
        }
        zip.Save(Response.OutputStream);
}
Response.End();
报错:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。
请各位大侠指点指点!~

RedLaugh的主页 RedLaugh | 初学一级 | 园豆:71
提问于:2013-01-14 16:56
< >
分享
最佳答案
0

参考:http://zhidao.baidu.com/question/355814709.html

另外,看看你这个页面是否启动了辅助线程在异步执行,试试在执行Response.End();之前先等待辅助线程执行完再调用。

收获园豆:20
滴答的雨 | 老鸟四级 |园豆:3660 | 2013-01-14 23:39

把 Response.End();  改为  HttpContext.Current.ApplicationInstance.CompleteRequest();  这种方法还是不行!~

RedLaugh | 园豆:71 (初学一级) | 2013-01-15 09:49

@RedLaugh: zipFile是你自己封装的吗?里Save面是否启动了辅助线程。

滴答的雨 | 园豆:3660 (老鸟四级) | 2013-01-15 09:52

@滴答的雨: 我用的是第三方类库(ionic.zip.dll)

RedLaugh | 园豆:71 (初学一级) | 2013-01-15 10:02
其他回答(2)
0

把 Response.End();  改为  

 HttpContext.Current.ApplicationInstance.CompleteRequest();   
收获园豆:10
果果天涯 | 园豆:16 (初学一级) | 2013-01-14 17:05

不行啊,调试catch中还是显示:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值

支持(0) 反对(0) RedLaugh | 园豆:71 (初学一级) | 2013-01-14 17:18
0

要不试试在Response.End();之前加一句Thread.Join();

 

看看这样有没有效果.

收获园豆:15
hexllo | 园豆:318 (菜鸟二级) | 2013-01-15 11:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册