关于这个错误有很多线程Stackoverflow,但它们似乎都没有帮助我解决我的问题。
我正在将一个小的Excel文件从服务器传输到客户端。我的代码:
protected void SaveSpreadsheet(string filePath)
{
FileInfo myfile = new FileInfo(filePath);
if (myfile.Exists)
{
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment; filename=" + myfile.Name);
Response.AddHeader("Content-Length", myfile.Length.ToString());
Response.ContentType = "xlsx";
Response.TransmitFile(myfile.FullName);
Response.End();
// Delete the file from the server
if (File.Exists(strSaveFilePath))
{
File.Delete(strSaveFilePath);
}
}
}
我收到'Thread is aborted'错误。我从故障排除中知道了Response.End();线是问题。
与此错误相关的许多问题都来自使用Response.Redirect的人,但这些解决方案对我来说似乎不起作用。据微软称,replacing that line with HttpContext.Current.ApplicationInstance.CompleteRequest是他们的解决方案,但这给了我另一个错误。
此网站和其他网站上的许多解决方案都建议将此代码移到我的Try-Catch块之外。我尝试过,但我的代码的最后一部分(删除文件)不起作用,所以我知道我仍然收到错误。
任何人都可以帮我解决这个问题吗?感谢。