Asp.net &引用;“线程已终止”;启动下载时出现运行时错误

Asp.net &引用;“线程已终止”;启动下载时出现运行时错误,asp.net,multithreading,download,terminate,Asp.net,Multithreading,Download,Terminate,情况: 在一个C#web站点项目中,我从数据库中获取数据,并将所需数据写入excel文件服务器端,然后提供下载 问题: 在启动下载的代码结束时(见下文),我得到一个运行时错误,线程被终止,没有提供任何文件供下载 我的代码 FileStream fStream = new FileStream(resultFile, FileMode.Open, FileAccess.Read); byte[] byteBuffer = new byte[(int)fStream.Length]; fStream

情况:

在一个C#web站点项目中,我从数据库中获取数据,并将所需数据写入excel文件服务器端,然后提供下载

问题:

在启动下载的代码结束时(见下文),我得到一个运行时错误,线程被终止,没有提供任何文件供下载

我的代码

FileStream fStream = new FileStream(resultFile, FileMode.Open, FileAccess.Read);
byte[] byteBuffer = new byte[(int)fStream.Length];
fStream.Read(byteBuffer, 0, (int)fStream.Length);
fStream.Close();

response.Clear();
response.ContentType = "application/vnd.ms-excel";
response.AddHeader("Content-Length", byteBuffer.Length.ToString());
response.AddHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(resultFile));
response.TransmitFile(resultFile);
response.End();

我希望有人能帮我。提前感谢:)

我使用以下代码下载Excel

   FileStream fs = File.OpenRead(path);
   byte[] data = new byte[fs.Length];
   fs.Read(data, 0, (int)fs.Length);
   Response.Buffer = true;
   Response.ContentType = "application/x-msdownload";
   Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName  );
   Response.BinaryWrite(data);

@GregoryNozik,
TransmitFile
是正确的选择吗?看起来OP需要一个同步解决方案。顺便说一句,我应该说是中断而不是终止。无论如何,我尝试了它,但没有得到响应。结束,我没有得到错误,但我也没有得到一个对话框来保存提供下载的文件。除了TransmitFile,我还尝试了WriteFile(resultFile)和BinaryWrite(byteBuffer),但我得到了相同的错误…代码在web方法中这一事实与此有关吗?@Gregory Nozik:是的,但它只是在响应时停止执行webmehod。结束行和fiddler显示了一个500,或者如果没有那条线,我会得到一个200,但什么都没有发生。你在什么浏览器上尝试过这个?(IE更为敏感,例如,它要求页面URL与下载文件的名称匹配)