错误:无法显示 XML 页。  
   无法查看使用 样式表的 XML 输入。请更正错误然后单击 刷新 按钮,或稍后重试。 
 代码:        System.Data.DataTable dt = BLL.product.GetProduct();
            System.Data.DataSet ds = new DataSet();
            ds.Tables.Add(dt.Copy());
            ExcelIO ei = new ExcelIO();
            bool s = ei.ExportExcel(ds, "upload/excel.xlsx");
            if (s == true)
            {
                try
                {
                    string filepath = Server.MapPath(".") + "\\" + "upload\\excel.xlsx";
                    if (File.Exists(filepath))
                    {
                        FileInfo file = new FileInfo(filepath);
                        if (file.IsReadOnly)
                        {
                            file.IsReadOnly = false;
                        }
                        Response.Clear();
                        Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
                        Response.AppendHeader("Content-Disposition ", "attachment;filename= " + Server.UrlEncode(file.Name));
                        Response.AppendHeader("Content-Length ", file.Length.ToString());
                        Response.ContentType = "application/octet-stream";
                        Response.WriteFile(file.FullName);                        Response.Flush();
                        Response.End();
                        // HttpContext.Current.ApplicationInstance.CompleteRequest();
                    }
                  
                }
                catch (Exception ex)
                {
                    throw ex;
                }

解决方案 »

  1.   

    没有啊,只有这导出excel的时候才出现
      

  2.   

      throw ex;
    改成
    Response.Write(ex.Message);
    试试
      

  3.   

    ex {由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。} System.Exception {System.Threading.ThreadAbortException}
    当走到response.end()的时候,出现这个异常。搜了点资料,说吧response.end()改成 HttpContext.Current.ApplicationInstance.CompleteRequest();
    ,但是改了以后没事无法显示XML页
      

  4.   

    ex {由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。} System.Exception {System.Threading.ThreadAbortException}
      

  5.   

    你把
    try
      
    catch去掉就明白哪行错误了
      

  6.   

    点击按钮后,浏览器显示下面这个错误:
    错误:无法显示 XML 页。   
      无法查看使用 样式表的 XML 输入。请更正错误然后单击 刷新 按钮,或稍后重试。 
      

  7.   

     Response.AppendHeader("Content-Disposition ", "attachment;filename= " + Server.UrlEncode(file.Name));
      Response.AppendHeader("Content-Length ", file.Length.ToString());这里面不要带空格 Response.AppendHeader("Content-Disposition", "attachment;filename= " + Server.UrlEncode(file.Name));
      Response.AppendHeader("Content-Length", file.Length.ToString());
      

  8.   

    有两种原因,一种是你的文件没有关闭,这个你可以采用 Using(...){}进行些代码,另外一种原因是网页缓存没有清空,你用Response.Close()试试,大概就这两种原因的一种