日期:2014-05-17  浏览次数:20396 次

由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。
一个文件下载程序 总是报"由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。"这个错误 不知道什么问题。 请指教代码如下:

C# code

string xls=Server.MapPath("~/filename.doc");
System.IO.FileInfo file = new System.IO.FileInfo(xls); 
string fileName = file.Name;
Response.Clear();
Response.Buffer = true;
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName)); 
Response.AddHeader("Content-Length", file.Length.ToString()); 
Response.ContentType = "application/msword";
Response.WriteFile(file.FullName);
Response.Flush();
Response.End();



------解决方案--------------------
去掉
Response.End();

------解决方案--------------------
看着有的句子可能不需要吧
Response.Clear();
Response.Buffer = true;
Response.Flush();
Response.End();
感觉重复,,个人看法
------解决方案--------------------
参考
http://gb2013.blog.163.com/blog/static/2173530120102194185512/
------解决方案--------------------
我也是遇到一样的问题,发送AJAX请求下载文件,如果去掉Response.End()就不报堆栈错误,但文件就是下载不下来,下载框都弹不出来。同楼上,改为HttpContext后,一样没效果,求大侠指点~