Upgrading SQL Server 2000 Reporting Services custom extensions and assemblies to SQL Server 2005

SQL Server Reporting Services provides an extensible architecture that allows developers to create custom extensions for data processing, delivery, rendering, and authentication. It also supports using custom code for report item values, styles, and formatting.

If you deployed custom extensions or assemblies in your SQL Server 2000 Reporting Services installation, Setup will block an automatic upgrade your installation and display the following error: "Custom assemblies are deployed for this report server." If you get this error, you can continue to upgrade other SQL Server 2005 components if you selected multiple components to upgrade. Otherwise, you must close Setup and take corrective action before you can proceed.

Prepare a custom installation for upgrade

To upgrade a custom Reporting Services installation, temporarily remove the configuration settings for the custom assemblies in the rsreportserver.config file. Removing the custom settings will make your installation look like a default installation, allowing you to bypass the upgrade check for custom assemblies. After upgrade is finished, you can add the entries back into the configuration file and move the custom assemblies to the new \ReportServer\Bin directory under the new SQL Server 2005 Reporting Services instance directory (MSSQL.x) that is created when you upgrade.

Backward compatibility and recompilation requirements

In most cases, assemblies you created for a SQL Server 2000 report server will continue to work against the same endpoint in the SQL Server 2005 release. However, for some custom assemblies, you must add an additional recompilation step to the upgrade process. In particular, if you are using a custom assembly that has a dependency on a file or path from a SQL Server 2000 Reporting Services installation, or if you are using a custom security extension, you must recompile the assembly before it can be used in the upgraded installation. Recompiling a custom security extension is necessary because your custom extension must include references for report models and model item security.

If you need to recompile, you must use Visual Studio 2005 or download a Visual Studio 2005 Express Edition component. SQL Server 2005 Reporting Services program files are managed assemblies built on .NET Framework 2.0. Referencing the SQL Server 2005 version of Microsoft.ReportingServices.Interfaces.dll in your project requires that you compile the project using a Visual Studio 2005 development environment that builds .NET Framework 2.0 applications.

TIP – Upgrade will delete old samples and replace them with newer versions if you select the newer SQL Server 2005 samples in SQL Server 2005 Setup. If you are actively using sample extensions or applications, copy the source files to a different location before upgrading.

Modify configuration files prior to upgrade

1. Backup the rsreportserver.config file.

2. Remove custom extension settings from rsreportserver.config. You do not need to remove entries from other configuration files or security policy files. Those files will be updated and moved during the upgrade; any custom settings will be preserved.

3. Run Setup to upgrade your report server installation.

4. Copy the custom assemblies to the new directory structure. Put the files in the \Program Files\Microsoft SQL Server\MSSQL.x\Reporting Services\ReportServer\Bin folder.

5. Edit rsreportserver.config and add the custom extension settings back into the file.

Upgrade a custom installation and recompile custom application files

Custom security extension must always be recompiled. Other extensions and assemblies only need to be recompiled if they have a dependency on a file or file structure of the old installation. The following error, which occurs after upgrade, will tell you whether you need to recompile a data processing extension: "An error has occurred during report process. An attempt has been made to use a data processing extension <name> that is not registered for this report server.”

1. Remove custom extension settings from the rsreportserver.config file.

2. Run Setup to upgrade your report server installation.

3. Recompile your custom security extension or custom assembly that depends on a file in the report server directory structure:

o Start Visual Studio 2005.

o Open the solution. You will be prompted to convert the files.

o In Solution Explorer, right-click References, click Add Reference.

o Click Browse.

o Browse to Program Files\Microsoft SQL Server\MSSQL.x\Reporting Services\ReportServer\Bin folder, and select Microsoft.ReportingServices.Interfaces.dll.

o Build the project or solution.

4. Copy the custom assembly to the \ReportServer\Bin folder.

5. Add the custom extension settings to the rsreportserver.config file.

6. Check the rsreportdesigner.config, rswebapplication.config, and the security policy configuration files to verify that the custom settings are still valid. Specifically, if the custom settings include a path to a Reporting Services folder, edit the value to use the new folder path.

7. Test your application or report.