Я получаю это исключение. Я следил за предложениями, приведенными в What does this error mean? The remote host closed the connection. The error code is 0x80070057Исключение: «Удаленный хост закрыл соединение. Код ошибки 0x80070057«
все еще, я получаю ту же ошибку.
Передача файла с сервера на браузер клиента с использованием Response.WriteFile()
.
В Виде:
$("#btnExport").on("click", function (e) {
window.location = '@Url.Action("ExportToExcel", "Report")';
e.preventDefault();
});
В контроллере:
[HttpGet]
public RedirectResult ExportToExcel()
{
Download(ExportFilePath);
return new RedirectResult(ExportFilePath);
}
public void Download(ExportFilePath)
{
HttpContext context = System.Web.HttpContext.Current;
FileInfo file = new FileInfo(ExportFilePath);
context.Response.Clear();
context.Response.ClearHeaders();
context.Response.ClearContent();
context.Response.AppendHeader("Content-Disposition", "attachment; filename =" + ExportFileName);
context.Response.AppendHeader("Content-Length", file.Length.ToString());
context.Response.ContentType = "application/excel";
context.Response.WriteFile(file.FullName);
context.Response.Flush();
context.Response.Close();
context.Response.End();
}
Ваш 'RedirectResult (ExportFilePath)' немного странный. Это должен быть url, где страница должна быть перенаправлена, а не путь к файлу –
@rock_walker: Какова предлагаемая реализация действия, где я могу разместить метод Download(). –
@BhaweshPaliwal Ошибка просто означает, что пользователь закрыл свой браузер, прежде чем все было отправлено с сервера на клиент, например. файл клиентских запросов, сервер начинает передавать файл, но до того, как сервер завершит отправку файла, пользователь закрывает браузер ... в основном вы ничего не можете с этим поделать. –