如何避免在 Excel 文件下载过程中出现 Response.End()“Thread was being aborted”异常

2023-11-29

我尝试将数据集转换为 Excel 并下载该 Excel。我得到了所需的 Excel 文件。但是每次 Excel 下载都会引发 System.Threading.ThreadAbortException。 如何解决这个问题?... 请帮我...

我在我的 aspx 屏幕中调用此方法。此方法也引发了相同的异常。

我在许多 aspx 屏幕中调用该 public void ExportDataSet(DataSet ds) 函数,并且我还在维护错误记录器方法,以记录在运行时引发的异常,并将这些异常写入 .txt 文件。因此,相同的异常会记录在所有 aspx 屏幕的 txt 文件中。我只是想避免从方法声明的类文件到 aspx 抛出此异常。只是我只想在我的方法声明类文件本身处理这个异常。

ASPX 文件方法调用: excel.ExportDataSet(dsExcel);

方法定义:

public void ExportDataSet(DataSet ds)
{

   try
   {
      string filename = "ExcelFile.xls";
      HttpResponse response = HttpContext.Current.Response;
      response.Clear();
      response.Charset = "";
      response.ContentType = "application/vnd.ms-excel";
      response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
      using (StringWriter sw = new StringWriter())
      {
         using (HtmlTextWriter htw = new HtmlTextWriter(sw))
         {
             GridView dg = new GridView();
             dg.DataSource = ds.Tables[0];
             dg.DataBind();
             dg.RenderControl(htw);
             // response.Write(style);
             response.Write(sw.ToString());                                                
             response.End();                    // Exception was Raised at here
         }
      }
   }
   catch (Exception ex)
   {
      string Err = ex.Message.ToString();
      EsHelper.EsADLogger("HOQCMgmt.aspx ibtnExcelAll_Click()", ex.Message.ToString());
   }
   finally
   {                
   }
}

我在网上查了一下,发现Response.End()总是抛出异常。

替换这个:HttpContext.Current.Response.End();

有了这个:

HttpContext.Current.Response.Flush(); // Sends all currently buffered output to the client.
HttpContext.Current.Response.SuppressContent = true;  // Gets or sets a value indicating whether to send HTTP content to the client.
HttpContext.Current.ApplicationInstance.CompleteRequest(); // Causes ASP.NET to bypass all events and filtering in the HTTP pipeline chain of execution and directly execute the EndRequest event.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何避免在 Excel 文件下载过程中出现 Response.End()“Thread was being aborted”异常 的相关文章

随机推荐

  • 并行流上的 Skip() 是否存在良好的用例?

    2015 年 9 月编辑 当我最初于 2015 年 2 月提出这个问题时 该行为在链接的问题虽然是违反直觉的kind of规范允许 尽管文档中存在一些小小的不一致 然而 Tagir Valeev 在 2015 年 6 月 提出了一个新问题
  • VBA Microsoft Word - 序列号

    我已经手动完成了此操作 我想将 ZXZ 的每个实例替换为从 1 一直到 Word 文档中最后一次出现的 ZXZ 的序列号 基本上 我想要实现的是在特定的Word文档中运行Word VBA宏 其中VBA宏从文件顶部开始搜索 查找每个出现的ZX
  • 点击后退按钮完成 UITextField 的编辑

    我的 NavigationController 中有 2 个控制器 首先将第二个推入堆栈 用户可以与那里的文本字段进行交互 然后 在一种情况下 用户将点击后退按钮以转到上一个屏幕 假设第二个实例的加载是 重 的 所以一旦需要 我将只保留它的
  • Python 中与密钥库的 https 握手

    我设置了一个 Web 服务器 该服务器拒绝没有有效 p12 证书的连接 我需要通过 Python 脚本访问在服务器上运行的 REST API 但我找不到有关如何执行此操作的任何信息 如果有人有关于如何在 Python 中使用 p12 证书执
  • 如何增加 VC9 (MSVC 2008) 中允许的修饰名称长度?

    我有一组相当大且复杂的程序要从 VC8 移植到 VC9 其中一个模块具有许多分层的 typedef 这会导致编译器生成 C4503 警告 修饰名被截断 生成的LIB文件将无法正确链接到项目中的其他模块 VC8 对此没有遇到任何问题 这让我得
  • Android - 是否可以通过编程方式获取安装引荐来源网址

    我注意到浏览器中的一些 Google Play 应用程序链接有referrer 它们的属性 这显然告诉了将您发送到 Google Play 中该应用程序页面的引荐来源网址 是否可以在我的应用程序代码中看到该引荐来源网址 如果有 如果没有 是
  • 通过蓝牙IPhone SDK发送字符串

    如何将字符串从 iPhone 发送到另一个设备 android pc 等 EDITED 以下代码用于通过蓝牙传输消息 视图控制器 h 文件 import
  • 使用 JAXB 编组/解组 Java 超类和子类

    我一直在尝试 JAXB 教程 并设法使代码能够从 Java 对象生成 XML 文件 然后能够使用 XML 生成 Java 对象 目前 它读取同一类的多个实例来创建一个类似于以下文件的 XML 文件
  • 无法进入已加载符号的 Nuget 库

    我已将 Nuget 库上传到 Azure Devops Artifacts 中 它还将符号文件 PDB 发布到 Azure Devops 符号服务器 我在 Visual Studio 中添加了设置 以便按照上述说明从 Azure Devop
  • 在Delphi XE中使用UIDocumentInteractionController

    我有一个 Delphi XE5 应用程序 可以在设备上本地下载和存储 PDF 我在表单上有一个 TWebBrowser 来查看 PDF 它工作得很好 我现在希望与其他应用程序 例如 Safari Mail 等 共享 PDF 但我真的很挣扎
  • xUnit.net:全局设置+拆卸?

    这个问题是关于单元测试框架的xUnit net 我需要在执行任何测试之前运行一些代码 并在所有测试完成后运行一些代码 我认为应该有某种属性或标记接口来指示全局初始化和终止代码 但找不到它们 或者 如果我以编程方式调用 xUnit 我也可以使
  • 将 HTML 选择存储到变量中/在 Google 表格中使用该数据

    我几乎已经有了一个 HTML 表单选择器 它根据 google 表格列中的数据创建一个数组 完成 并将该数据填充到下拉框中 完成 我整个周末一直在尝试弄清楚如何捕获下拉选项的选择 然后将其合并到一个变量中 这是我的启动 HTML 弹出窗口的
  • 将图例宽度设置为 100% 绘图宽度

    无论实际尺寸如何 如何将图例高度或宽度设置为绘图高度 宽度的 100 library ggplot2 ggplot iris aes Petal Width Sepal Width color Petal Length geom point
  • jquery加载函数问题

    我正在尝试使用 jquery 加载函数在按下按钮时将转换为 DAE 文件的 3D 模型加载到目标 div 中 然而 当按下按钮时 屏幕上会出现与文件相关的大量数字 而不是模型 这是问题的屏幕截图 如果不可能做到这一点 我还想知道是否可以使用
  • Java 字符串连接

    我的 java 代码有问题 我昨天问了同样的问题 我得到了答复 但很抱歉这是我的错 我的问题不清楚 我的代码如下所示 for i 0 i lt geo getTargets length i if geo getTargets i getT
  • 如何以编程方式打开受密码保护的 PDF 文件?

    Adobe IFilter 不提供提供密码来打开受密码保护的 PDF 文件的机制 因此它不能用于打开受密码保护的文件 我想知道 是否有一种相对简单的方法来以编程方式检索 PDF 文件中的实际加密数据 使用标准加密 API 对其进行解密 然后
  • 如何在图形和子图周围添加边框或框架

    我想创建这样的图像 但我无法将各个图放入框架内 图形和坐标轴都有一个 patch 属性 它是构成背景的矩形 因此 设置图形框架非常简单 import matplotlib pyplot as plt fig axes plt subplot
  • jQuery 和 AJAX 登录表单

    我正忙于开发一个网站 右上角有一个登录框 我希望用户能够在同一页面上登录 而无需刷新 好的 我已经完成了该部分的工作 但我仍然在登录后过程中苦苦挣扎 我的外观如下 HTML li class login li PHP session sta
  • 使用jquery动态改变背景颜色

    现在我的页面的一部分有一个对象列表 当您将鼠标悬停在它们上方时 背景会变成浅黄色 并在鼠标移开时恢复为白色 我希望其中一个对象在满足条件时变成绿色背景 如果不满足则恢复正常 我遇到这种情况有一个问题 如果满足条件 它会改变颜色 如果不满足
  • 如何避免在 Excel 文件下载过程中出现 Response.End()“Thread was being aborted”异常

    我尝试将数据集转换为 Excel 并下载该 Excel 我得到了所需的 Excel 文件 但是每次 Excel 下载都会引发 System Threading ThreadAbortException 如何解决这个问题 请帮我 我在我的 a