Ошибка при попытке экспорта данных в Excel.

У меня есть кнопка, которая экспортирует данные из RadGrid от telerik в документ Excel.

Однако при попытке экспорта я сталкиваюсь со следующей ошибкой:

[System.Threading.ThreadAbortException]: {Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.} 

Вот мой код:

 private void GenerateFile(object structure, string fileName) { Workbook workbook = structure as Workbook; var formatProvider = new XlsxFormatProvider(); try { using (MemoryTributary ms = new MemoryTributary()) { Response.ClearHeaders(); Response.ClearContent(); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment; filename=" + fileName); formatProvider.Export(workbook, ms); ms.Position = 0; ms.WriteTo(Response.OutputStream); Response.End(); } } catch (System.OutOfMemoryException ex) { } } } 

Я пробовал следующие решения на основе сообщений, которые я нашел в Интернете, которые касаются одной и той же проблемы, ни одно из решений не сработало:

  • Измените «Response.End ()» на «HttpContext.Current.ApplicationInstance.CompleteRequest ()»
  • Измените «Response.End ()» на «HttpContext.Current.Response.End ()»
  • Переместите «Response.End ()» внутри блока finally .
  • Переместите «Response.End ()» вне области try-catch.

Ни одно из вышеперечисленных решений не решило проблему. Любые дальнейшие советы о том, как разрешить эту ошибку, очень ценят это.

Благодарю.

Вы вызываете исключение, вызывая Response.End . Задокументированное поведение End заключается в сбросе буферов и немедленном прерывании текущего запроса, прерывая его. Он не используется в .NET-программировании. Он существует только для совместимости со старым ASP-кодом.

Просто удалите Response.End() из вашего кода.

Вы также должны удалить инструкцию catch . Исключения должны быть исследованы и исправлены, а не закрыты. Исключение OutOfMemoryException означает, что с кодом, вызывающим утечки, есть что-то серьезное. Это может быть вызвано либо из-за нехватки памяти, либо из-за того, что память настолько фрагментирована, что .NET не может выделить достаточно большой блок

  • Установка данных в шаблон Excel в электронной таблице RadSpreadSheetDocumentProvider
  • как получить значения ячейки excel для переменных в c # закодированном шаге
  • Как интерпретировать коллекцию при экспорте в Excel (XLSX) с помощью Telerik?
  • Как экспортировать содержимое radgridview в Excel?
  • Telerik RadGrid export to excel дает бумажный формат Letter и мне нужен A4
  • как я могу сохранить excel из электронной таблицы kendo в удаленный сервер, используя что-то вроде
  • Формат Telerik Экспорт ячейки Excel
  • Как загрузить файл Excel в папку загрузки пользователя?
  • Экспорт RadGrid в Excel
  • Конфигурация столбца Telerik PivotGrid
  • Детали отсутствуют при экспорте из сгруппированной сетки кендо
  • Давайте будем гением компьютера.