【问题标题】:404 Error when exporting Excel from ActiveReports 8从 ActiveReports 8 导出 Excel 时出现 404 错误
【发布时间】:2014-10-10 17:15:50
【问题描述】:

我断断续续地为此苦苦挣扎了两个星期,其中大部分时间都花在等待对我的支持问题的答复上。我有解决方案,我将在此处发布,希望对遇到此问题的下一个人有所帮助。我将添加很多不必要的细节,以增加下一个人找到这个的几率。

我正在开发一个 MVC5 站点,并使用 ActiveReports 8 HTML5 查看器来显示 IList 绑定的基于代码的部分报告。我已使用 GrapeCity.ActiveReports.Viewer javascript 函数的 availableExports 参数启用 PDF、Word 和 Excel 导出。查看器在页面上正确呈现,并对 ActiveReports.ReportSerice.asmx 进行预期调用,该调用返回呈现报表所需的信息,包括从中流式传输数据的 URL。报告在查看器中显示得很好。到目前为止一切顺利。

在我的开发机器上,我可以导出为 PDF、Word 和 Excel。但是,当部署到测试服务器时,Excel 导出停止工作,浏览器只显示一个保存文件对话框,试图保存名为 ActiveReports.ar8?blahblahblah 的文件。通过 Fiddler 的深入研究,我确定这与调用上述报告服务返回的 URL 几乎完全相同,除了一些参数,例如“Command=Export”和“ExportFormat=Xls”。

保存此“文件”会生成一个名为 ActiveReports.xls 的 0 字节文件。例如,我可以通过删除诸如 GrapeCity.ActiveReports.Export.Pdf 之类的关键 dll 来模拟其他导出类型的这种行为,然后请求 PDF 导出。在我看来,ActiveReports(至少从 8.1.414.0 版开始)会吞下某些服务器端错误,例如缺少 dll,并向客户端返回 404 错误代码。我认为 500 错误,其中包含有关缺失内容的详细信息,比通用 404 更可取。

这让我相信测试服务器上缺少某些东西。由于我在所有 ActiveReports dll 上都设置了“本地复制”,并且我可以看到它们都已成功部署到测试服务器,因此缺少的部分必须是我本地机器的 GAC 中存在的东西,而不是服务器上的东西。

使用 Fiddler,我确定对 ActiveReports.ar8?blahblahblah URL 的响应的返回代码为 404。生成的 404 响应的内容处置标头已设置为“附件;文件名=ActiveReports.xls” ,但 Content-Type 是“text/html”而不是预期的“application/vnd.ms-excel”。这告诉我,在放弃之前,出口至少完成了部分处理。

阻止 Excel 导出完成的服务器缺少什么?

【问题讨论】:

    标签: export-to-excel activereports


    【解决方案1】:

    缺少的部分是 DocumentFormat.OpenXml.dll,它的副本可以在“C:\Program Files (x86)\Common Files\ComponentOne\ActiveReports 8”文件夹中找到。具有讽刺意味的是,它在所有 GrapeCity.ActiveReports 程序集旁边按字母顺序排列,但没有任何其他程序集使用它的迹象,您可以像我一样轻松地查看它,认为它是该文件夹中其他内容的依赖项,例如许可证生成器。

    向 Web 项目添加对 DocumentFormal.OpenXml.dll 的引用,并将 Copy Local 设置为 true 可确保 dll 与其他所有内容一起部署。我的 Excel 导出现在可以正常工作了。

    【讨论】:

      【解决方案2】:

      对于给您带来的不便,我深表歉意。你是对的,当使用带有 ActiveReports 的 Excel 导出时,服务器上也需要“DocumentFormat.OpenXml.dll”。我已请求将此添加到文档中。 感谢您通知我们。

      问候

      【讨论】:

      • 将它添加到文档中会有所帮助,但我想在 StackOverflow 上获取它,因为老实说,如果人们在未来遇到类似问题,最有可能找到它.
      猜你喜欢
      • 2021-02-25
      • 2021-02-12
      • 2021-11-03
      • 1970-01-01
      • 2014-10-09
      • 1970-01-01
      • 2013-08-29
      • 2022-01-18
      • 1970-01-01
      相关资源
      最近更新 更多