Configuring Crystal Reports for a Web Farm or Web Garden

Now that you have examined the issues of Architecture, the The ASP.NET Worker Process, Out-of-Process Session State and Serializable Object Models in Crystal Reports, you are ready to configure Crystal Reports in a Web farm or Web garden scenario.

Additional servers

In addition to the Web farm or Web garden servers, you need two additional servers:

  • The ASP.NET out-of-process Session State server, to store the state of the serialized ReportDocument instance.

  • An unmanaged RAS server to store the Crystal report .rpt file.

    Note

    For more information, see Upgrade Options.

Special use of ReportDocument

The Web farm or Web garden uses the ASP.NET out-of-process Session State server to store the serialized ReportDocument object. In this scenario, the ReportDocument object is used differently than in a basic install of Crystal Reports.

Instead, the ReportDocument.Load() method or the ReportDocument.FileName property links the ReportDocument instance to an out-of-process report that is stored on the unmanaged RAS server. For examples of how to use either approach, see the configuration information below.

Note

The storage of the report .rpt file on the out-of-process unmanaged RAS server means that every ASP.NET worker process in the Web farm or Web garden can access the same report .rpt file from a central location.

Configuration of ReportDocument for the unmanaged RAS server

The relationship between the ReportDocument instance and the unmanaged RAS server can be configured in the following ways:

  • Upload the local, embedded Crystal report within the ReportDocument instance to the unmanaged RAS server at runtime. This temporarily stores the report .rpt file on the out-of-process unmanaged RAS server.

    Note

    The report binding scenario that is used to perform this approach is described in detail under report binding scenarios.

    See Binding to Unmanaged RAS Using ReportDocument.Load() Method.

  • Associate an external report that is permanently stored on the out-of-process unmanaged RAS server with the ReportDocument instance, by assigning the file directory path of the report on the unmanaged RAS server to the FileName property of the ReportDocument instance.

    Note

    The report binding scenario that is used to perform this approach is described in detail under report binding scenarios.

    See Binding to an Unmanaged RAS Server Using ReportDocument.FileName Property.

ReportDocument instance on the Session State server, the .rpt file on the unmanaged RAS server

The ReportDocument instance, which can be serialized when it is used in cooperation with the unmanaged RAS Crystal upgrade solution, is stored on the ASP.NET out-of-process Session State server.

Because the ReportDocument instance stays alive on the Session State server, the Crystal report .rpt file associated with the ReportDocument instance is kept open on the unmanaged RAS server.

When a different ASP.NET worker process on the Web farm or Web garden retrieves the ReportDocument instance from the out-of-process Session State server, the associated .rpt file is accessed by the ReportDocument instance from the unmanaged RAS server.

Writing images to the network share

One additional detail needs to be configured when using a Web farm.

Images that are written during the reporting process (such as dynamic charts) must be placed on a common network share for access by any ASP.NET worker process. Each machine must be configured to write images to the same network share and to grant permission to the ASP.NET worker account on each machine to write to that share.

Detailed configuration instructions

For detailed configuration instructions on the configuration issues involved in running Crystal Reports on a Web farm or Web garden, consult the Technical Support web site.