【问题标题】:Reporting Services Problem Rendering RTFReporting Services 问题呈现 RTF
【发布时间】:2009-05-18 17:38:37
【问题描述】:

我正在使用 VS.NET 2005SQL Server 2005。我的开发计算机正在运行 Windows XP SP2。 SQL Server 2005 数据库和报告服务在 Windows 2003 Server 上运行。

我的业务需求是开发和部署一个报告,该报告采用存储在数据库中的富文本 (RTF) (datatype = TEXT) 并将其转换为图片使用自定义程序集的运行时(源代码可以在这里找到http://blogs.digineer.com/blogs/jasons/archive/2006/10/03/520.aspx)。我可以使用 ReportManager Web 界面和 Render 方法在我的本地(即开发人员)计算机上生成和查看包含 RTF 的动态图像。当我将它部署到我们的测试服务器时,我最终得到了一个损坏的链接图像。

回顾一下,我采取了以下步骤。

创建自定义程序集 使用 VS.NET 2005 将 RTF 转换为位图图像。自定义程序集具有强名称。

在本地开发者机器上

  1. 复制自定义程序集到 C:\Program 文件\Microsoft Visual Studio 8\Common7\IDE**PrivateAssemblies**。
  2. 修改 C:\Program Files\Microsoft 视觉工作室 8\Common7\IDE\PrivateAssemblies**RSReportDesigner.config** 包括一个 CodeGroup 授予 FullTrust 到基于自定义程序集 关于StrongNameMembership注意: ReadMe.txt 没有提到添加 进入这个文件)。
  3. 修改 C:\Program Files\Microsoft 视觉工作室 8\Common7\IDE\PrivateAssemblies**RSPreviewPolicy.config** 包括一个 CodeGroup 授予 FullTrust 到基于自定义程序集 关于 StrongNameMembership(注意: ReadMe.txt 没有提到添加 进入这个文件)。

使用 VS.NET 2005 修改报告如下

  1. 添加了对自定义程序集的引用 和 System.Drawing。
  2. 添加了图像控制 type=数据库,MimeType=图像/bmp, Value = 调用自定义程序集 方法;方法被传递的值 包含 RTF 的数据库字段。
  3. 已部署报告。
  4. 通过以下方式成功查看报告 HTML 和通过 Render 方法 使用 EXCEL 作为输出的 WebService 格式。 图像的 HTML

在本地开发者机器和服务器上

  1. 复制自定义程序集到 C:\Program 文件\Microsoft SQL 服务器\MSSQL.3\报告 服务\ReportServer\bin
  2. 修改 C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting 服务\ReportServer**rssrvpolicy.config** 包括一个代码组,它授予 FullTrust 到基于自定义程序集 关于StrongNameMembership注意: 源代码表示权限 应根据授予 UrlMembership)。
  3. 已部署报告。
  4. 均未成功查看报告 通过 HTML 和通过 Render 方法 使用 EXCEL 作为输出的 WebService 格式。图片的 HTML

最初,我在导出到 Excel 时收到“数据丢失”的错误消息,但这些似乎已通过在 ReadMe.txt 中未提及的 .config 文件中授予权限来解决。我已经没有办法尝试了,我束手无策。我确信该解决方案与权限有关,因为这适用于我的计算机,但不适用于服务器。

提前感谢您的任何想法或建议。

问候,

比尔

【问题讨论】:

  • 您的自定义组件是通过从数据库中的 rtf 数据创建图像文件来工作,还是以动态方式流回“图像”?如果它使用文件作为中间体,您可能需要考虑文件的写入位置以及该位置的权限。
  • 组件正在内存中运行时将 rtf 数据转换为位图。

标签: sql-server reporting-services rtf


【解决方案1】:

您是否grant your assembly the necessary permissions 访问了测试服务器上的数据库? (看起来你做到了。)

如果是这样,请检查您是否实际上是在测试服务器上创建映像。如果不是,那么这是一个写权限问题。如果正在创建但无法查看,则为读取权限问题。

【讨论】:

  • 是的,所有数据库权限都已到位。如果不是,我会收到“拒绝访问”错误。我们实际上并没有创建文件,因为自定义组件会在运行时转换内存中的 rtf 数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多