现在,您已研究了“结构”、“ASP.NET 辅助进程”、“进程外 Session State” 以及 “Crystal Reports 中的可序列化对象模型” 的问题,则您可以在 Web 场或 Web 园方案中配置 Crystal Reports。
其他服务器
除了 Web 场或 Web 园服务器外,还需要其他两种服务器:
- ASP.NET 进程外 Session State 服务器,用于存储序列化的 ReportDocument 实例的状态。
- 一个用于存储 Crystal 报表 .rpt 文件的非托管 RAS 服务器。
注意有关更多信息,请参见“升级选项”。
ReportDocument 的特殊用法
Web 场或 Web 园使用 ASP.NET 进程外 Session State 服务器来存储序列化的 ReportDocument 对象。在这种方案中,ReportDocument 对象的使用方式与在 Crystal Reports 的基本安装中的使用方式不同。
而 ReportDocument.Load() 方法或 ReportDocument.FileName 属性将 ReportDocument 实例链接到非托管 RAS 服务器上存储的进程外报表。有关如何使用各方法的示例,请参见下面的配置信息。
注意 |
|---|
报表 .rpt 文件存储在进程外非托管 RAS 服务器上意味着,Web 场或 Web 园中的每个 ASP.NET 辅助进程都可从中央位置访问同一报表 .rpt 文件。 |
针对非托管 RAS 服务器的 ReportDocument 配置
可通过以下方式配置 ReportDocument 实例和非托管 RAS 服务器之间的关系:
- 在运行时将 ReportDocument 实例内的本地嵌入式 Crystal 报表上载到非托管 RAS 服务器。这会将报表 .rpt 文件临时存储在进程外非托管 RAS 服务器上。
注意报表绑定方案中详细描述了用于执行此方法的报表绑定方案。
- 将永久性存储在进程外非托管 RAS 服务器上的外部报表与 ReportDocument 实例关联,方法是将非托管 RAS 服务器上的报表的文件目录路径赋给 ReportDocument 实例的 FileName 属性。
注意报表绑定方案中详细描述了用于执行此方法的报表绑定方案。
Session State 服务器上的 ReportDocument 实例,非托管 RAS 服务器上的 .rpt 文件
ReportDocument 实例(在与非托管 RAS Crystal 升级解决方案结合使用时可序列化)存储在 ASP.NET 进程外会话状态服务器上。
由于 ReportDocument 实例在会话状态服务器上一直处于活动状态,因此,与 ReportDocument 实例关联的 Crystal 报表 .rpt 文件在非托管 RAS 服务器上将保持打开。
当 Web 场或 Web 园上的其他 ASP.NET 辅助进程从进程外会话状态服务器中获取 ReportDocument 实例时,ReportDocument 实例将从非托管 RAS 服务器中访问关联的 .rpt 文件。
将图像写入网络共享位置
在使用 Web 场时,还需另外配置一项详细信息。
必须将报表处理过程中写入的图像(如动态图表)放在公用网络共享位置上,以供任何 ASP.NET 辅助进程访问。每台计算机必须配置为将图像写入同一网络共享位置,并将权限授予每台计算机上的 ASP.NET 辅助进程帐户以便写入该共享位置。
详细配置说明
有关在 Web 场或 Web 园上运行 Crystal Reports 时所涉及的配置问题的详细配置说明,请查阅技术支持网站。