导出到 Excel 时线程被中止?

2024-06-26

我有一个绑定到 GridView 的 DataTable。我还有一个按钮,单击该按钮可将 DataTable 导出到 Excel 文件。但是,出现以下错误:

ErrMsg =“线程正在被中止。”

这是引发错误的部分代码:

private static void Export_with_XSLT_Web(DataSet dsExport, 
                                         string[] sHeaders,
                                         string[] sFileds, 
                                         ExportFormat FormatType,
                                         string FileName)
{
    try
    {
        // Appending Headers
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.Buffer = true;

        if(FormatType == ExportFormat.CSV)
        {
            HttpContext.Current.Response.ContentType = "text/csv";
            HttpContext.Current.Response.AppendHeader("content-disposition",
                                                      "attachment; 
                                                      filename=" + FileName);
        }
        else
        {
            HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
            HttpContext.Current.Response.AppendHeader("content-disposition", 
                                                      "attachment; 
                                                      filename=" + FileName);
        }

        // XSLT to use for transforming this dataset.                       
        MemoryStream stream = new MemoryStream();
        XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8);

        CreateStylesheet(writer, sHeaders, sFileds, FormatType);
        writer.Flush();
        stream.Seek(0, SeekOrigin.Begin);

        XmlDataDocument xmlDoc = new XmlDataDocument(dsExport);
        //dsExport.WriteXml("Data.xml");
        XslTransform xslTran = new XslTransform();
        xslTran.Load(new XmlTextReader(stream), null, null);

        using(StringWriter sw = new StringWriter())
        {
            xslTran.Transform(xmlDoc, null, sw, null);

            //Writeout the Content              
            HttpContext.Current.Response.Write(sw.ToString());                
            writer.Close();
            stream.Close();
            HttpContext.Current.Response.End();
        }
    }
    catch(ThreadAbortException Ex)
    {
        string ErrMsg = Ex.Message;
    }
    catch(Exception Ex)
    {
        throw Ex;
    }
    finally
    {

    }
}

将 HttpContext.Current.Response.End 更改为 HttpContext.Current.ApplicationInstance.CompleteRequest 后,它现在只转到finally 块,我无法弄清楚抛出了什么错误消息。


ThreadAbortException 从以下行抛出:

HttpContext.Current.Response.End();

这里还有更多details http://support.microsoft.com/kb/312629和解决方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导出到 Excel 时线程被中止? 的相关文章

  • OWIN AuthenticationOptions 在 mvc5 应用程序中运行时更新

    Hi 情况如下 我在 iis 7 上有一个带有 Identity 2 的 MVC 5 应用程序 该应用程序为多个网站提供服务 主机名是某些网站的关键 网站 另一个网站 等等 我决定在我的所有网站上使用谷歌外部登录 每个网站都应该是带有个人
  • 带方括号的 Uri.EscapeUriString

    这是一个奇怪的问题 但让我们看看它会得到什么样的回应 如果我编写一个控制台应用程序 VS 2013 NET 4 5 1 并执行这行代码 Uri EscapeUriString 我明白了 但是 如果我执行同样的事情 嗯 从技术上来说Uri E
  • C# Visual Studio 动态代码片段

    我正在开发一个 WinForms 项目 每天都会执行一些重复性的任务 所以我认为创建代码片段 https msdn microsoft com en us library ms165394 v vs 110 aspx会帮助我 但它仅适用于固
  • 多态性中基类缺少虚拟析构函数 = 资源泄漏?

    我们知道 如果要多态地使用基类 则需要将基类的析构函数指定为 virtual 否则程序中可能会出现资源泄漏 因为只会调用基类析构函数 而不会调用派生对象析构函数 我们还知道构造函数 析构函数纯粹是初始化 未初始化构造 而operator n
  • 在 Windows 服务中使用 OleDb 从 Excel 读取数据?

    免责声明 我知道这是一种不好的做事方式 这是我们与客户的唯一选择 Problem 我们需要每隔 x 时间从 Excel 文件读取数据 数据通过第三方 Excel 插件不断变化 应用程序的环境是 Windows XP SP1 和 Net 2
  • 命令中带空格的 Windows C 系统调用

    我无法使用名称和参数中的空格进行系统调用 例如 system c program files something example exe c my files example txt 我尝试过各种我知道的方法来逃避 但没有任何效果 我努力了
  • 如果 .txt 文件不存在,则创建一个,如果存在则追加新行

    我想创建一个 txt 文件并写入它 如果该文件已经存在 我只想添加更多行 string path E AppServ Example txt if File Exists path File Create path TextWriter t
  • 如何将反射权限添加到IIS或将其添加到web.config?

    我在用着文件助手 http www filehelpers com 用于读取 csv 文件 一切都很好 直到我从 VS 开发服务器切换到 IIS 我得到了 PolicyException 无法获取所需的权限 我用谷歌搜索发现我需要添加反射许
  • ASP.NET 中的 thread.sleep

    我正在为我的网站模拟彗星实时馈送协议 因此在我的控制器中我添加 while nothing new before timeout Thread Sleep 1000 但我注意到添加此功能后整个网站变慢了 调试后我得出结论 当我打电话时Thr
  • 如何在 WCF 中反序列化自定义 SOAP 标头?

    我正在尝试向通过 WCF 的所有 SOAP 请求添加自定义标头 我发现这篇精彩的文章 http blogs msdn com b mohamedg archive 2012 10 21 adding custom soap headers
  • 解析通过asp:FileUpload上传的XML文件

    我有一个场景 用户将上传 XML 文件 我想将该文件添加到数据库中的表中 不过 困难的部分是我需要解析文件 然后将一些信息添加到一些不同的表中 显示如何获取 XML 文件的每个示例都使用 URI 来获取文件 但是如何直接从数据库获取文件 或
  • 如何“全局”捕获对象实例中引发的异常

    我目前正在编写一个 winforms 应用程序 C 我正在使用企业库异常处理块 遵循我所看到的相当标准的方法 IE 在 Program cs 的 Main 方法中 我已将事件处理程序连接到 Application ThreadExcepti
  • 简单的喷射器将具体类型与生活方式结合起来

    我正在寻找一种可以使用指定的生活方式注册具体类型的方法 基本上如下所示 public void SomeFunction Type concrete Lifestyle lifestyle gt container Register con
  • 将 R 值传递给采用 L 值的函数时出现过载歧义

    我有 2 个重载函数 一个采用 L 值 另一个采用 R 值 目的是让该函数可以像这样调用 Obj obj foo obj OR foo Obj 所以 我写了2个重载函数 template
  • MVC 4 中集合和单个值之间内容协商的差异?

    我正在利用新的 MVC4 ApiController 来构建搜索界面 像这样的东西 public IEnumerable
  • Task.Delay 到底是如何工作的?

    他们说 Task Delay 是一个异步 Thread Sleep 为了测试这一点 我写了下面的代码 我希望立即打印 One 然后 3 秒后将打印结果变量 15 2 秒后 将打印 Two 但似乎并非如此 一 不会立即打印 3 秒后打印 On
  • 64 位随机生成器种子

    我目前正在运行一个具有 8 个以上管道 线程 的多线程模拟应用程序 这些管道运行非常复杂的代码 该代码取决于种子生成的随机序列 然后该序列被归结为单个 0 1 我希望在将种子从主线程传递到处理管道后 这种 随机处理 具有 100 的确定性
  • 具有可导出私钥的证书的“错误密钥”例外

    我正在尝试使用非对称加密来加密然后解密文件 我已经使用 makecert 创建了一个测试证书并将其安装到我的个人本地计算机存储中 将来我必须在多个服务器上安装此证书 这就是为什么我使用 pe 标志创建它 即使用可导出的私钥 证书已成功创建并
  • Unity 错误“内部构建系统错误。后端退出,代码为 -1073740791。”摧毁/杀死了我的项目

    好吧 我可能在这里夸大了 但这是真的 当我开始打开它时 该项目由于错误 内部构建系统错误 后端退出 代码为 1073740791 而被破坏 应用程序 这个项目已经在Google Play上发布了 也许和设置有关 有人可以帮忙吗 完整错误 I
  • 有关 Endian 性和 .Net 的详细信息?

    我有几个关于字节顺序的问题 这些问题足够相关 我保证将它们作为一个问题提出 1 字节顺序是由 Net还是由硬件决定的 2 如果是由硬件决定的 我怎样才能在C 中找出硬件的字节序 3 字节序是否影响二进制交互 例如 OR AND OR 或移位

随机推荐

  • 删除字段后重置 JavaScript 计数器

    我有一个 javascript 函数 可以添加带有计数器的输入字段 现在 当我删除其中一个字段时 它会被删除 但计数器仍在继续 JS 或 JQuery 有没有办法重置计数器并自动递增计数器 JS code function var scnt
  • Android Studio 中显示的 Android 设备列表卡住了

    卡在 Android Studio 中加载设备中 在 Stack Overflow 中发现以下问题但没有帮助 Android Studio 设备列表加载时卡住 https stackoverflow com q 51101178 11630
  • 如何根据路径/URL 选择图像?

    我想根据图片的 URL 来选择图片 但由于某种原因 它没有发挥作用 最终我追求的是这样的东西 var imgs img src images object png not hidden 但即使是简单的事情 比如 img src images
  • 如何在react中导出csv对象

    我试图弄清楚是否有任何方法可以使用 React 在我的网页上单击 导出 按钮来下载 csv 文件 这是我现在在组件下的内容 div div
  • 有效存储和查询 GPS 坐标

    我想创建一个大型 GPS 坐标数据库 可以通过 返回 此坐标 n 米范围内的所有坐标 来查询该数据库 我需要它尽可能高效 因此循环遍历数据库中的所有坐标并计算坐标是否在 n 米内并不是理想的解决方案 有更简单的解决方案吗 Thanks 我通
  • 电子商务网站的货币换算 - 防止因四舍五入而出现错误的总购物车

    我正在向电子商务应用程序添加多货币支持 我解决这个问题的方法是让应用程序保持其基础货币 并让模板在显示价格时调用 PriceDisplay 函数 插件 因此 模板继续接收以美元金额表示的价格 如果需要 priceDisplay 函数会正确转
  • 在 Android Webview 上选择文本转速度的语言

    我已经搜索了很多小时但没有真正的答案 是否可以为文本转语音功能选择与默认语言不同的语言 此代码在 PC 上的 chrome 上完美运行 但在 Android 浏览器上不起作用 function if speechSynthesis in w
  • 如何禁用滚轮事件 QGraphicsView Qt C++ 上的滚动功能

    我有一个图形视图 并且我设置了自己的功能 以便在用户按下 Control 并单击鼠标时手动拖动滚动 我已经删除了滚动条 但鼠标滚轮仍然会滚动 甚至滚动到显示在图像中的图像qGraphicsView显示我的手拖动没有的空白 白色 空间 我怎样
  • Android如何将int转换为String? [复制]

    这个问题在这里已经有答案了 我有一个 int 我想将其转换为字符串 应该很简单吧 但当我这样做时 编译器抱怨它找不到该符号 int tmpInt 10 String tmpStr10 String valueOf tmpInt 以上有什么问
  • DB_DEBUG 设置为 FALSE 的数据库连接设置

    我正在尝试连接到我的数据库 但收到以下消息 无法使用提供的设置连接到数据库服务器 文件名 core Loader php 线路号码 346 所以在阅读了很多之后 我发现在数据库连接中将 db default db debug 设置为 FAL
  • 覆盖生产环境中的后端资产

    我正在开发一个需要稍微改变 Refinery 的 WYMEditor 行为的项目 这可以通过重写轻松完成jquery refinery wymeditor js using rake refinery override并根据我自己的需要进行
  • 是否可以在 Git 项目的所有分支中执行“grep 搜索”?

    是否可以运行git grep在 Git 控件源项目的所有分支中 或者还有其他命令要运行吗 问题 如何在 Git 历史记录中 grep 搜索 提交的代码 https stackoverflow com q 2928584 6309 建议 gi
  • 将参数传递给 npm run "my command" 并在我的函数中使用该参数

    考虑app js const doCoolStuff require api myApi grab param from command line into myParam doCoolStuff myParam more code And
  • Slick Slider 绑定悬停事件

    我正在使用光滑的滑块来显示图像 目前我已经有了它 因此您可以单击导航 它会更改主图像显示 我试图让它在悬停事件或鼠标悬停事件上设置当前选定的导航 这是我当前的导航和显示代码 slider for slick slidesToShow 1 s
  • 将堆分配的指针转换为指向 VLA 的指针是否安全?

    如果我有一个指向代表典型的堆分配空间的指针 行主二维数组 将此指针强制转换为 指向 VLA 的等效指针以方便下标 例子 Assuming m was allocated and initialized something like int
  • 将对象数组发布到帆会导致“类型错误:无法将对象转换为原始值”

    在我的 html 页面中 我将这篇文章发送到我的 sails 服务器 但我无法获取控制器中的数据 因为 req param 函数不会返回任何有意义的答案 这是网页代码 post http myserver local calendar ba
  • C# 属性,是否可以在不定义 set(无支持变量)的情况下绕过定义 get?

    假设您有一个具有 300 个属性且没有支持变量的类 每个属性都返回一个小数 双精度 Example public decimal MathValue get set 现在您决定对这些值中的每一个进行四舍五入 我正在寻找最简单的方法来重构它
  • Flutter Stripe 在显示付款单时抛出 StripeException

    我正在尝试使用 stripe payment 包在我的 flutter 应用程序中实现 Stripe 支付系统 在我的代码中 我调用 Stripe instance initPaymentSheet 但是当我尝试在几行之后调用 Stripe
  • 如何仅更改音频文件的 AWS S3 内容类型

    我在 AWS S3 存储桶上有超过 50000 个文件 音频 图像 pdf 现在我面临着 Firefox 的问题 由于其内容类型 音频文件无法在 Firefox 上播放 之前一直运转良好 当我更改内容类型时 音频文件效果很好二进制 八位字节
  • 导出到 Excel 时线程被中止?

    我有一个绑定到 GridView 的 DataTable 我还有一个按钮 单击该按钮可将 DataTable 导出到 Excel 文件 但是 出现以下错误 ErrMsg 线程正在被中止 这是引发错误的部分代码 private static