У меня есть попытка catch в методе button_Click(), где я использую EPPlus для сохранения некоторых данных в электронной таблице Excel.Response.End вызывает System.Threading.ThreadAbortException
try
{
.... Some calculations here...
//Create Excel output.
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=Report " +
DateTime.Today.Day.ToString() + "-" + DateTime.Today.Month.ToString() + "-" +
DateTime.Today.Year.ToString() + " " + DateTime.Now.Hour + "-" +
DateTime.Now.Minute + "-" + DateTime.Now.Second + ".xlsx");
package.SaveAs(Response.OutputStream);
Response.End();
}
cach()
{
LogException();
}
Я получаю System.Threading.ThreadAbortException ошибки, которые я получаю из Response.End() выше, я получаю это.
Что действительно раздражает, так это то, что, несмотря на то, что на моей машине dev он все еще выводит файл, но когда я помещаю сайт на сервер, он регистрирует ошибку, страница постоянно загружается и никогда не выплевывает файл.
У кого-нибудь есть идея, что там происходит?
1) Вы используете 'async' и' await'? 2) Вы уже отправили ответ в вычислениях? –
'Response.End()' всегда выдает 'ThreadAbortException', потому что текущий поток, ответственный за обработку сообщения HTTP-ответа, сразу же прерывается после вызова метода' End'. –
Нет ожидания или асинхронного использования. –