zoukankan      html  css  js  c++  java
  • 下载文件时报错 "由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值" 解决方法

    下载文件的代码

     /// <summary>
        /// 下载文件操作类
        /// </summary>
        public static class DownLoadFiles
        {
            /// <summary>  
            /// 下载文件
            /// </summary>
            /// <param name="strDownLoadFileName">要下载的文件名称</param>
            /// <returns></returns>
            public static void DownLoadFile(string strDownLoadFileName)
            {
                if (String.IsNullOrEmpty(strDownLoadFileName))return;
                try
                {
                    FileInfo info = new FileInfo(strDownLoadFileName);
                    HttpContext.Current.Response.Clear();
                    HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(info.Name));
                    HttpContext.Current.Response.AddHeader("Content-Length", info.Length.ToString());
                    HttpContext.Current.Response.ContentType = "application/octet-stream";//ms-excel
                    HttpContext.Current.Response.WriteFile(info.FullName);
                    //HttpContext.Current.Response.End();
                    HttpContext.Current.ApplicationInstance.CompleteRequest();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }

    // 最初是 HttpContext.Current.Response.End() 总是报错,异常“由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值”后来将上面的"HttpContext.Current.Response.End();"改成"HttpContext.Current.ApplicationInstance.CompleteRequest();",这个问题就自然的解决了。

  • 相关阅读:
    1282 回文数猜想
    1279 验证角谷猜想
    1205 吃糖果
    1201 18岁生日
    1106 排序
    2024 C语言合法标识符
    196 让气球飞吧
    1001 Sum Problem
    if语句
    三元运算符
  • 原文地址:https://www.cnblogs.com/jasonwb/p/1875313.html
Copyright © 2011-2022 走看看