Поток был прерван с помощью TransmitFile
Об этой ошибке есть множество потоков Stackru, но ни одна из них, похоже, не помогает мне решить мою проблему.
Я передаю небольшой файл 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);
}
}
}
Я получаю сообщение об ошибке "Поток был прерван". Из устранения неполадок я знаю, что Response.End(); линия это проблема.
Многие проблемы, связанные с этой ошибкой, связаны с людьми, использующими Response.Redirect, но эти решения мне не подходят. По словам Microsoft, замена этой строки на HttpContext.Current.ApplicationInstance.CompleteRequest была их решением, но это дает мне еще одну ошибку.
Многие решения на этом и других сайтах рекомендуют перемещать этот код за пределы моего блока Try-Catch. Я пытался это сделать, но последняя часть моего кода (удаление файла) не работает, поэтому я знаю, что я все еще получаю сообщение об ошибке.
Может ли кто-нибудь помочь мне решить эту проблему? Благодарю.