为什么不直接Response.WriteFile呢?
产生的原因像是还没下载完你的Response.End();就给结束掉了因此出问题.你的文本形式的文件内容不会是代码什么吧? 
试试把Response.Flush();去掉留下Response.End();看看症状

解决方案 »

  1.   

    如去掉Response.End();
    文件后就出现此页面的HTML代码
      

  2.   

    把Response.Flush();去掉留下Response.End();看看症状
    System.Threading.ThreadAbortException: 正在中止线程。
       在 System.Threading.Thread.AbortInternal()
       在 System.Threading.Thread.Abort(Object stateInfo)
       在 System.Web.HttpResponse.End()
       在 dn2.Page_Load(Object sender, EventArgs e) 位置 e:\Inetpub\wwwroot\1\dn2.aspx.cs:行号 63
      

  3.   

    没遇到过.帮你顶.Response.WriteFile用这个吧.
      

  4.   

    把Response.Flush();去掉.
    留下Response.End();
    看看结果
      

  5.   

    先得这样看看System.Threading.ThreadAbortException: 正在中止线程。
       在 System.Threading.Thread.AbortInternal()
       在 System.Threading.Thread.Abort(Object stateInfo)
       在 System.Web.HttpResponse.End()
       在 dn2.Page_Load(Object sender, EventArgs e) 位置 e:\Inetpub\wwwroot\1\dn2.aspx.cs:行号 63
      

  6.   

    还是文本的问题
    我用Response.WriteFile
    我在目录中建1.txt
    写个“颠三倒四但是”
    点击下载,选择“打开”
    打开后发现:
    颠三倒四但是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head><title>
    无标题页
    </title></head>
    <body>
        <form name="form1" method="post" action="dn2.aspx?id=7" id="form1">
    <div>
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGQUXe5j+vn09IoesWG/Rq/4+7OOTA==" />
    </div>    <div>
        
        </div>
        </form>
    </body>
    </html>
    怎么办?疯了
      

  7.   

    最好在Response.End之前把数据库connection,reader都close或者dispose掉
      

  8.   

    把Response.End()换成HttpContext.Current.ApplicationInstance.CompleteRequest();试一试。
      

  9.   

    供参考的代码:
     
    System.IO.FileStream fs = System.IO.File.OpenRead(exportFile);
                byte[] FileData = new byte[fs.Length];
                fs.Read(FileData, 0, (int)fs.Length);
                Response.Clear();
                Response.AddHeader("Content-Type", "application/octet-stream");
                string FileName = System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(exportFileName));
                Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Convert.ToChar(34) + FileName
                    + System.Convert.ToChar(34));
                Response.AddHeader("Content-Length", fs.Length.ToString());
                Response.BinaryWrite(FileData);
                fs.Close();
              Response.Flush();
                HttpContext.Current.ApplicationInstance.CompleteRequest();