string filePath = ExportAndSaveInvoiceAsHtml(invoiceId);
Response.AddHeader("Content-Disposition", "attachment;filename=" + Path.GetFileName(filePath));
Response.WriteFile(filePath);
// Using Response.End() solves the problem
// Response.End();
Я хочу, чтобы пользователи могли загружать счет-фактуру HTML (из gridView счетов-фактур). Результирующий файл содержит данные файла счета + нежелательные страницы html.Является ли Response.End() обязательным в данном сценарии?
Если я использую Response.End(), он решает проблему, но тогда он всегда выдает исключение. Прочитайте в некоторых потоках это исключение по дизайну. Но тогда, конечно, это не вызовет проблемы, как усечение ответа или так в любое время?
Как еще я могу написать JUST данные файла.
Btw, ранее мы написали счет в формате PDF, и что время, не использующее Response.End(), вызвало неполную загрузку файла.
Может кто-нибудь дать основы записи пользовательских данных/файла в поток ответа.
Ну у меня есть внешний блок попробовать и сейчас, так как это исключение игнорируемые я завернул его в dummy try { Response.End(); } catch (Exception ex) { Logger.LogException (ex); } –
Но его выход в внешний блок catch также имеет код для отображения сообщения об ошибке пользователю. –
@Munish, боюсь, я не понимаю: поскольку вы проглатываете исключение, оно не должно распространяться на внешний охват. (Кроме того, вы должны поймать 'ThreadAbortException' вместо общего типа« Исключение »). –