【发布时间】:2009-05-18 17:38:37
【问题描述】:
我正在使用 VS.NET 2005 和 SQL 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 转换为位图图像。自定义程序集具有强名称。
在本地开发者机器上
- 复制自定义程序集到 C:\Program 文件\Microsoft Visual Studio 8\Common7\IDE**PrivateAssemblies**。
- 修改 C:\Program Files\Microsoft 视觉工作室 8\Common7\IDE\PrivateAssemblies**RSReportDesigner.config** 包括一个 CodeGroup 授予 FullTrust 到基于自定义程序集 关于StrongNameMembership(注意: ReadMe.txt 没有提到添加 进入这个文件)。
- 修改 C:\Program Files\Microsoft 视觉工作室 8\Common7\IDE\PrivateAssemblies**RSPreviewPolicy.config** 包括一个 CodeGroup 授予 FullTrust 到基于自定义程序集 关于 StrongNameMembership(注意: ReadMe.txt 没有提到添加 进入这个文件)。
使用 VS.NET 2005 修改报告如下
- 添加了对自定义程序集的引用 和 System.Drawing。
- 添加了图像控制 type=数据库,MimeType=图像/bmp, Value = 调用自定义程序集 方法;方法被传递的值 包含 RTF 的数据库字段。
- 已部署报告。
- 通过以下方式成功查看报告 HTML 和通过 Render 方法 使用 EXCEL 作为输出的 WebService 格式。 图像的 HTML
在本地开发者机器和服务器上
- 复制自定义程序集到 C:\Program 文件\Microsoft SQL 服务器\MSSQL.3\报告 服务\ReportServer\bin
- 修改 C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting 服务\ReportServer**rssrvpolicy.config** 包括一个代码组,它授予 FullTrust 到基于自定义程序集 关于StrongNameMembership(注意: 源代码表示权限 应根据授予 UrlMembership)。
- 已部署报告。
- 均未成功查看报告 通过 HTML 和通过 Render 方法 使用 EXCEL 作为输出的 WebService 格式。图片的 HTML
最初,我在导出到 Excel 时收到“数据丢失”的错误消息,但这些似乎已通过在 ReadMe.txt 中未提及的 .config 文件中授予权限来解决。我已经没有办法尝试了,我束手无策。我确信该解决方案与权限有关,因为这适用于我的计算机,但不适用于服务器。
提前感谢您的任何想法或建议。
问候,
比尔
【问题讨论】:
-
您的自定义组件是通过从数据库中的 rtf 数据创建图像文件来工作,还是以动态方式流回“图像”?如果它使用文件作为中间体,您可能需要考虑文件的写入位置以及该位置的权限。
-
组件正在内存中运行时将 rtf 数据转换为位图。
标签: sql-server reporting-services rtf