在C#中渲染到MHTML时来自SSRS的Bogus异常

时间:2015-03-10 18:08:31

标签: c# asp.net sql-server reporting-services

环境是Windows 2008服务器上的SQL Server 2008 Web 版。 SSRS已安装并正常工作 - 即我可以从报告管理器查看,刷新和导出报告。

由于此版本的限制,我编写了一个简单的ASP.NET包装器来呈现报告并通过电子邮件发送给我。这适用于HTML或PDF。我想将它呈现给MHTML并将其发送到电子邮件中 ​​- 这也是我第一次运行它时的工作原理。在随后的情况下,除非我在配置管理器中停止并重新启动SSRS服务,否则我得到:

  

您曾尝试使用不是的渲染扩展程序   已注册此报表服务器,或者不支持此服务器   版本的Reporting Services。 (rsRenderingExtensionNotFound)

显然这不是真的,它已经注册,确实有效。如果我切换到渲染为以前的格式之一,我可以根据需要多次运行渲染。我想知道是否正在使用文件系统的某些部分,并且可能是一段时间之间的缓存文件?当ASP.NET应用程序使用文件时,症状有点像需要应用程序池刷新。

实际执行的代码是:

byte[] bytes = ReportViewer1.ServerReport.Render("MHTML", null, out mimeType, out encoding, out extension, out streamids, out warnings);

我不确定下一步该尝试什么,我真的希望它能够呈现MHTML,因为当我将其分成电子邮件时,我会直接在电子邮件正文中完整地呈现我的报告。

帮助! TIA,M

1 个答案:

答案 0 :(得分:1)

所以官方的答案是它不起作用 - 网络版至少禁止渲染到MHTML作为其配置的一部分。这似乎是一个错误,这只会在报告处理完毕后发生,实际上它会在第一次迭代时成功而在其他迭代中失败。

我最终渲染为HTML,解析出图像SRC,将它们作为图像流抓取并将它们附加到电子邮件中,用cid代替URL:s一切都很好。