Welcome to MSDN Blogs Sign in | Join | Help

Syndication

News

All my posts are provided "AS IS" with no warranties, and confer no rights.

Where are my readers?


Other blogs from my colleages

Recommendations for Uninstalling & Installing Reporting Services

 

I am sure it has happen to all of us in some situations that we decided to uninstall Reporting Services and install it again.  Sometimes we make this decision because the state of Reporting Services is very unstable that it would take too long to troubleshoot the errors or because we want to restore RS to its original state.

From my experience on installing and uninstalling Reporting Services, I recommend to follow the steps bellow:

1.       Uninstall Reporting Services from “Add & Remove Programs” or “Programs & Features” (in Windows Server 2008 or Vista)

2.       Manually remove/backup the databases ReportServer and ReportServerTempDB from the SQL Server. If we already had some reports deployed to Reporting Services, we would do a backup of the databases and reconnect after the new installation. If we want to set a clean Reporting Services without reports, we can just remove them using Management Studio.

3.       Manually remove the virtual folders Reports and ReportServer from IIS (This is only for RS 2005. As you may know, RS 2008 doesn’t use IIS)

4.       Manually remove the folder of the instance of Reporting Services (For example for RS 2008 would be something like C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER). This folder is not removed automatically and, if we don’t remove it manually, the configuration files will contain information about the old configuration and we might conserve old problem if they existed.

5.       Install Reporting Services with an administrator user

6.       Install latest Service Pack

7.       Configure Reporting Services using the Reporting Services Configuration Manager.

 

I hope this eliminates your fears about uninstall and install Reporting Services

 

Maria Esteban
EMEA GTSC Development Support Engineer
Microsoft Product Support Services

Posted Friday, July 10, 2009 9:30 AM by mariae | 1 Comments

How to change the location of the log Files for Reporting Services RS 2008

 

You might want to change the location of the log files in Reporting Services. To achieve that, you can add a key in the directory section under the tag RSTrace in the file ReportingServicesService.exe.config file. You can see an example bellow. Just uncomment the XML tad and add a value to start using it

  

         <RStrace>

                <add name="FileName" value="ReportServerService_" />

                <!-- <add name="Directory" value="" /> -->

                <add name="HttpLogFileName" value="ReportServerService_HTTP_" />

                <add name="FileSizeLimitMb" value="32" />

                <add name="KeepFilesForDays" value="14" />

                <add name="Prefix" value="tid, time" />

                <add name="TraceListeners" value="debugwindow, file" />

                <add name="TraceFileMode" value="unique" />

                <add name="Components" value="all" />

        </RStrace>

 

Note 1: Be sure that you apply the same permissions to the new path folder that is on the logfiles folder.

Note 2: Same for RS 2005

 

Maria Esteban

Reporting Services Support Engineer

Posted Thursday, May 07, 2009 4:27 PM by mariae | 1 Comments

Quick tips for monitoring and improving performance in Reporting Services

 

In order to monitor the response times of the reports executed in Reporting Services, you need to understand how Reporting Services works concerning performance. You should know that there are 3 phases in the execution or a report:  “data retrieval” (time it takes to retrieve the data from the server using a queries or stored procedures), “processing” (time it takes to process the data within the report using the operations in the layout of the report) and “rendering” (time it takes to display the information of the report and how it is displayed like excel, pdf, html formats…).

 

In order to be able to know in which of these phases the time is been spent (during the report execution), there is a table in Reporting Services called “ExecutionLog”. This table records every report execution (one per record). The fields “TimeDataRetrieval” (amount of data been retrieved in the dataset), “TimeProcessing” (time to process the data and the operations performed on them), and “TimeRendering” (time it takes to covert the report to the final format for the user like excel, pdf…) show the time in milliseconds for each corresponding phase.

 

·         If the “Data Retrieval” time is high, you could try to decrease the amount of records retrieved in the query or Stored Procedure (you might not need all the data, then you can filter it) or check if the network or devices used is slow when the server is remote…

 

·         If the “Processing” time is high we could try to simplify the operations contained in the layout of the report (grouping, filtering, aggregated operations, post aggregated, custom added code... For example a Matrix would take longer to run than a table). 

 

·         If the “Rendering”, time is high, we should consider using lighter formats. For example Excel format is one of the heaviest and html format is lighter.

 

 

Maria Esteban

Reporting Services Support Engineer

Posted Thursday, April 16, 2009 3:47 PM by mariae | 0 Comments

Reporting Services Resilience recommendations

 

I found many people asking what the recommendations from Microsoft to make Reporting Services resilience are and if there is any plans for the future to make Reporting Services cluster aware.

 

As you can see from the following link, the installation of a complete report server installation in cluster is not supported:

 

Unsupported cluster configurations include deploying a complete report server installation (that is, a report server and its database) on each node of a multi-node cluster. Specifically, you cannot deploy Reporting Services on a two-node cluster that consists of an active node and a passive node that is used when the active node fails.

 

 

Although the Report Server Windows service and Web service cannot participate in a failover cluster, you can install Reporting Services on a computer that has a SQL Server failover cluster installed. The report server runs independently of the failover cluster. If you install a report server on a computer that is part of a SQL Server failover instance, you are not required to use the failover cluster for the report server database; you can use a different SQL Server instance to host the database.

 

 

Planning a Reporting Services Deployment

http://msdn2.microsoft.com/en-us/library/ms157293.aspx

 

 

RECOMENDATION:

 

The recommendation would be to install Reporting Services in a different machine and store only the databases in the SQL Server Cluster.

 

If you wanted to recover the information from Reporting Services (the reports) in case of a failure in the machine, you could follow the steps from the following article. Under the Reporting Services 2005 heading (I guess that is the version you have)

 

 

How to move a Reporting Services database from a computer that is running Reporting Services to another computer

http://support.microsoft.com/kb/842425

 

 

In summary, the only thing you should backup in order to be able to restore the system, in case of a failure in the machine, is the backup of the 2 Reporting Services databases (ReportServer and ReportServerTempDB) and the encryption keys file.

 

Note: If the en encryption keys were lost, the effect would be the lost of the information in the Data Sources. They would have to be reconfigured again by refilling the connection string information.

 

 

I am not aware of any plans to make Reporting Services more cluster aware in the future…

 

Maria Esteban
EMEA GTSC Development Support Engineer
Microsoft Product Support Services

 

Posted Wednesday, April 01, 2009 9:56 AM by mariae | 1 Comments

Filed under: ,

Using the API of Reporting Services to render reports to Excel or PDF in a multi language environment.

 

You might find yourself in a situation in which you want to use the API of Reporting Services to render reports to Excel or PDF in a multi language environment. If that is the case, you will want to display the date and number formats depending where the user is located.

 

Normally, this will make the WebService aware that we have a client app (for example in French).

 

In the sample, we override the GetWebRequest method so we can add a header with a “accept language” set to “fr”.

 

To be able to override this method, we need to create a class that inherits from the ReportExecutionService class (RS proxy object generated by VS).

 

So the code looks like this:

 

I have a Webreference to my ReportExecutionService (called ReportExec).

 

Here is the class I created and the override I did :

 

==

public class RSWebServiceExec : ReportExec.ReportExecutionService

        {

 

            protected override WebRequest GetWebRequest(Uri uri)

            {

                WebRequest wr = base.GetWebRequest(uri);

                WebHeaderCollection headers = ((HttpWebRequest)wr).Headers;

                headers.Add("Accept-Language:fr");

                return wr;

            }

 

        }

==

 

Then we use this object in my reportexecution code to render the report:

 

==

            RSWebServiceExec rs = new RSWebServiceExec();

            rs.Credentials = System.Net.CredentialCache.DefaultCredentials;

            rs.Url = "http://localhost/reportserver/ReportExecution2005.asmx";

 

            // Render arguments

            byte[] result = null;

            string reportPath = "/AdventureWorks Sample Reports/Employee Sales Summary";

            string format = "MHTML";

            string historyID = null;

            string devInfo = @"<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>";

 

            // Prepare report parameter.

            ParameterValue[] parameters = new ParameterValue[3];

            parameters[0] = new ParameterValue();

            parameters[0].Name = "EmpID";

            parameters[0].Value = "288";

            parameters[1] = new ParameterValue();

            parameters[1].Name = "ReportMonth";

            parameters[1].Value = "6"; // June

            parameters[2] = new ParameterValue();

            parameters[2].Name = "ReportYear";

            parameters[2].Value = "2004";

 

            DataSourceCredentials[] credentials = null;

            string showHideToggle = null;

            string encoding;

            string mimeType;

            string extension;

            Warning[] warnings = null;

            ParameterValue[] reportHistoryParameters = null;

            string[] streamIDs = null;

 

            ExecutionInfo execInfo = new ExecutionInfo();

            ExecutionHeader execHeader = new ExecutionHeader();

 

            rs.ExecutionHeaderValue = execHeader;

 

            execInfo = rs.LoadReport(reportPath, historyID);

 

            rs.SetExecutionParameters(parameters, "en-us");

            String SessionId = rs.ExecutionHeaderValue.ExecutionID;

 

            Console.WriteLine("SessionID: {0}", rs.ExecutionHeaderValue.ExecutionID);

 

 

            try

            {

                result = rs.Render(format, devInfo, out extension, out encoding, out mimeType, out warnings, out streamIDs);

 

                execInfo = rs.GetExecutionInfo();

 

                Console.WriteLine("Execution date and time: {0}", execInfo.ExecutionDateTime);

 

 

            }

            catch (SoapException e)

            {

                Console.WriteLine(e.Detail.OuterXml);

            }

            // Write the contents of the report to an MHTML file.

            try

            {

                FileStream stream = File.Create("report.mht", result.Length);

                Console.WriteLine("File created.");

                stream.Write(result, 0, result.Length);

                Console.WriteLine("Result written to the file.");

                stream.Close();

            }

            catch (Exception e)

            {

                Console.WriteLine(e.Message);

            }

==

 

We did this in a console application but this can be done in an ASP.NET app.

For Spanish, you have to put “es” instead of “fr” as the “accept Language” for you and so on.

You can also get the language dynamically from ASP.NET using :

 

request.Headers.Add("Accept-Language", HttpContext.Current.Request.Headers["Accept-Language"]);

 

You may also want to change the parameters langague (highlighted in orange).

 

 

Maria Esteban

Ingeniero de Soporte de Reporting Services

Posted Tuesday, March 17, 2009 5:31 PM by mariae | 1 Comments

Filed under:

¿Have you ever thought of migrating to Reporting Services 2008… but you weren’t sure to expect?

 

Before making the decision of migrating your Reporting Services 2000 or 2005 to 2008 (reports, models, data sources…) it is useful to consider the different scenarios that we might find, and understand the way Reporting Services upgrades the reports.

 

This article contains useful information that can help you to better plan the migration to Reporting Services 2008:

 

1.        Scenarios and support statement.

2.        Upgrading reports from RS 2005 to RS 2008 using the Report Manager.

3.        Upgrading reports from the Report Designer.

4.        Upgrade Advisor.

5.        Useful links with the steps to perform the migration and upgrading to RS 2008.

 

 

1.       Scenarios and support statement

 

Usage Scenario

             Support Statement

Applications made for RS 2005

        Will work

Applications made for RS 2000

        RS 2000 APIs SOAP not supported

        URL Access will work

RS databases in SQL 2005

        Will work

RS databases in SQL 2000

        Not supported

Sharepoint Integration

        There is a new Add-for 2008

v2 SharePoint WebParts

        Supported

One or more servers deployment

        Still supported

Scale-out deployment

        Still supported

RDL, RDLC

              Support Statement

RS 2005 RDL, RS 2000 RDL

        Can publish directly to 2008 Server using Report Manager or SOAP API

       2005 RDL will be preserved (not upgraded)

Report Designer 2000

        Not supported - cannot deploy reports to a 2008 server

Report Designer 2005

        Can deploy reports to a 2008 Server

Report Designer 2008

       Will upgrade 2000 and 2005 RDLs to 2008

       Authors 2008 RDLs

       Deploy to 2008 server only

VS 2005 Viewer

VS 2008 Viewer

       Authors SQL 2005 RDLs

       Does not support 2008 RDLs

 

 

2.       Upgrading reports from RS 2005 to RS 2008 using the Report Manager

 

1. When running a report from the Report Manager, Reporting Services checks internally the versión which the report was created.

2. If the report was created with RS 2005, RS will try to convert it to 2008 format (creating an intermediate format). If there were errors during the upgrade process, the report will be flagged to be run by the RS 2005 engine instead, the execution of the report will be restarted.

3.  If the report is flagged for execution in RS 2005 engine, it will not try to upgrade it ever again, and it will be executed with the RS 2005 engine  (it will not benefit of the new memory improvement of the RS 2008 engine)

 

3.       Upgrading reports from the Report Designer

If you open a report previously created with RS 2005 from the 2008 Report Designer, Reporting Services will try to upgrade the report to 2008. If there was any errors during the upgrade, a message will be shown to the user explaining that there has been errors and it will provide the possibility to continue the upgrade (losing the not allowed functionality) or not.

If you select the option to upgrade the report to 2008, it will create a copy (automatically) of the 2005 version of the report. This copy will be stored in the same folder and it will add the word ¨_ Backup¨ to the file.

If the reports created in 2005 included any Dundas chart, they will be converted without problems as long as the 2008 Dundas version is installed in the machine, and the reports don’t include any unsupported functionality like for example personalized code. The following link describes the unsupported functionality:

 

Description of the unsupported Dundas features in SQL Server 2008 Reporting Services

http://support.microsoft.com/kb/956028

 

 

4.       Upgrade Advisor

 

If what you want is to upgrade a machine with a former installation of Reporting Services, it is a good idea to run the Upgrade Advisor tool. This tool will analyze all the components of SQL installed from previous versions and it will generate a report with all the possible problems and solutions you might find. More information in the link bellow:

 

Using Upgrade Advisor to Prepare for Upgrades

http://msdn.microsoft.com/en-us/library/ms144256.aspx

 

 

5.       Useful links with the steps to perform the migration and upgrading to RS 2008

 

How to: Upgrade to SQL Server 2008 (Setup)

http://msdn.microsoft.com/en-us/library/ms144267.aspx

 

How to: Migrate a Reporting Services Installation

http://msdn.microsoft.com/en-us/library/ms143724.aspx

 

Maria Esteban

Ingeniero de Soporte de Reporting Services

Posted Thursday, January 29, 2009 12:00 PM by mariae | 1 Comments

Filed under: ,

"Unable to load client print control" error in Reporting Services 2005 after installing KB 956391

 

You might receive the following error when trying to print a report in Reporting Services after the installation of KB 956391 on the client machines:

 

Microsoft Security Advisory: Cumulative security update for ActiveX

http://support.microsoft.com/?id=956391

 

Unable to load client print control

 

This update “killbits” an older version of the RSClientPrint, due a vulnerability in it. But, for this update to work the report server must have been patched as well and perhaps also the ReportViewer control has to be updated. You should leave KB956391 installed on the client machines and then check for scenarios listed below.

RESOLUTION:

Note:. New article has been created about this issue:

Error message when you try to print a SQL Server 2005 Reporting Services report on a client computer:

"Unable to load client print control" http://support.microsoft.com/Default.aspx?id=967511

In order to solve the problem in the Report Manager (http://machinename/repors) you would have to install the latest Cumulative Update (for example Cumulative Update 10) of SQL Server. You can get it from the following link:

 

Cumulative update package 10 for SQL Server 2005 Service Pack 2

http://support.microsoft.com/kb/956854/en-us

 

If you use the report viewer control from a web application, CRM or Sharepoint, you should follow the steps bellow:

Check the version of the ReportViewer control.

1. Open a report for viewing on a client machine
2. Then right click on the report and select “View Source”.

Locate the line that looks like this:
<script src="http://blogs.msdn.com/TestRSClientPrintReportViewer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=X.Y.ZZZZ

Now, if the control type is “Reserved.ReportViewerWebPart.axd” then this is an issue with SharePoint.

The “Microsoft SQL Server 2005 Reporting Services Add-in for Microsoft SharePoint Technologies” has been updated to work with the new rsclientprint.dll.

Download center link:
http://www.microsoft.com/downloads/details.aspx?FamilyID=1e53f882-0c16-4847-b331-132274ae8c84&displaylang=en


If the control type is “Reserved.ReportViewerWebControl.axd” we should check the following:

We have 2 different major versions here: 8.00.50727 and 9.00.XXXX.
If you see version 8.00.50727 this means you are browsing reports from within CRM or using the ReportViewer control in a custom 2005 web application.
If you see version 8.00.50727 and the version is earlier than 8.00.50727.1843 then you should install Report Viewer Redistributable 2005 Service Pack 1 on the ReportServer or on the CRM server or machine where the web application is running:

Microsoft Report Viewer Redistributable 2005 Service Pack 1
http://www.microsoft.com/downloads/details.aspx?familyid=82833F27-081D-4B72-83EF-2836360A904D&displaylang=en

If you see version 9.00.XXXX or 9.0.XXXX then you are browsing through Report Manager, Report Server or perhaps a custom web application built with VS 2008.
Then you should install the below on the report server and in the machine where the web application is running:

Microsoft Report Viewer 2008 SP1 Redistributable
http://www.microsoft.com/downloads/details.aspx?FamilyID=bb196d5d-76c2-4a0e-9458-267d22b6aac6&DisplayLang=en

This will bring you up to version 9.0.30729.1 for the ReportViewer control.

After having updated the ReportViewer control you must issue an iisreset command so that the updated controls will take effect.
 

For Reporting Services 2000

 

You should  install the following security update in the server

Security Update for SQL Server Reporting Services 2000 Service Pack 2

http://www.microsoft.com/downloads/details.aspx?familyid=5F9E7F78-7439-414B-A9DC-A779B89427DB&displaylang=en

 

And the following versión of the Report Viewer redistributable in the Web application machine (or CRM machine):

 

Microsoft Report Viewer Redistributable 2005 Service Pack 1

http://www.microsoft.com/downloads/details.aspx?familyid=82833F27-081D-4B72-83EF-2836360A904D

 

Make sure that the following security update installed in all machines:

Microsoft Security Advisory: Update Rollup for ActiveX Kill Bits

http://support.microsoft.com/kb/956391   

 

Maria Esteban

Ingeniero de Soporte de Reporting Services

Posted Thursday, December 11, 2008 11:37 AM by mariae | 0 Comments

Filed under:

"Unable to load client print control" after installing a Service Pack or Cumulative Update of SQL Server 2005

 

After installing a Service Pack or Cumulative Update of SQL Server 2005, you might get the following error when trying to print a report from Reporting Services:

 

Unable to load client print control

 

CAUSE :

 

The RSClientPrinty control needs to be updated to the client machines and the users are not administrators or Power Users.

 

 

Users that are not administrators nor Power Users don’t have permissions to deploy of the RsClientPrint control to IE from the server (not allowed installing ActiveX components)

 

When installing any cumulative update or service pack, the control is redeployed. Each time the client clicks on the print button; there is a round trip to the server to check if the client has the latest version.

‎‎

There is a cab file provided for this, so System Management Server or equivalent 3rd party software software to manage the machines) can deploy it to all machines, or we can use a script to redeploy it the rest of the machines.

‎‎

The following links explains that you need administrator permissions in order to download the print control to download it from the server:

http://msdn.microsoft.com/en-us/library/ms159190(SQL.90).aspx

 

 

POSSIBLE ALTERNATIVES:

 

There are several options you can follow if cannot provide the users with administrator rights:

 

1.       Deploy the files manually: Extract the files from the cab file, copy them to the machines and register the rsclientprint.dll with regsvr32 (See bellow for more details)

2.       Create a logon script that will install the ActiveX control using “Run As”. (See bellow for more details)

3.       Publish RsClientPrint control to the domain clients via the Active Directory. From a high level, you would have to first convert the RsClientPrint.cab file into an MSI file and then publish the MSI file via Active Directory. (See bellow for more details)

 

I describe bellow the 3 options in more detail:

 

Deploy the files manually

1.       Go to C:\Program Files\Microsoft SQL Server\MSSQL.x\Reporting Services\ReportServer\bin on the report server and copy the rsclientprint.cab file

2.       Extract the files from the rsclientprint.cab file.

3.       Copy all the files to the client computer to the same folder

c:\print\RSClientPrint.dll

c:\print\rsclientprint.inf

c:\print\RsClientPrint_1028.rl

c:\print\RsClientPrint_1031.rl

c:\print\RsClientPrint_1033.rl

c:\print\RsClientPrint_1036.rl

c:\print\RsClientPrint_1040.rl

c:\print\RsClientPrint_1041.rl

c:\print\RsClientPrint_1042.rl

c:\print\RsClientPrint_2052.rl

c:\print\RsClientPrint_3082.rl

 

4.       Register RSClientPrint.dll by opening a command line (Start->Run) regsvr32 [path]RSClientPrint.dll

 

 

Sample script that will install the ActiveX control using “Run As”:
“Run As” is a tool that allows running programs as a different user than the currently logged-on user. It is described in the article:

How to enable and use the "Run As" command when running programs in Windows

http://support.microsoft.com/?id=294676

 

Steps to create the script would be:

1.  On a Domain Controller, create a share with the appropriate rights for a "simple user"
2.  On this share create a file called runas.vbs with the following code:

'
'RunAs Helper
'Syntax: runas.vbs <username> <command>
'
set args=wscript.arguments
username = args(0)
' Enter the password in the variable pass
pass = "administrator password"
'Get the command arguments
for i=1 to args.count - 1
command = command & args.item(i) & " "
Next
set shell=wscript.createobject("Wscript.shell")
'Run runas.exe
shell.run "runas.exe /user:" & username & " """ & command & """",2,FALSE
'Wait for runas.exe to load, this time could be shorter, but is set to 1000
'to be safe
wscript.sleep(1000)
'Send the password and hit enter
shell.sendkeys pass & "{ENTER}"
wscript.sleep(1000)


3. Extract the dll and inf files from your ActiveX on the share.
4. Download the Windows Script Encoder, available on

http://www.microsoft.com/downloads/details.aspx?FamilyId=E7877F67-C447-4873-B1B0-21F0626A6329&displaylang=en

 

and encrypt the original vbs file: original_vbs_file.vbs vbs_encrypted_file.vbe

The script encoder is a command-line tool that allows a scriptwriter to protect the contents of a script from unauthorized copies or modifications while ( at the same time ) allowing the script to run.

 

       5- Create a logonscript with the following instructions:


net use z: \\server\share <file://\\server\share> 'Map the share to a local drive.

 

The files need to be local so as to be installed..


z:\vbs_encrypted_file.vbe domain\admin rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 z:\rapport.inf
z:\vbs_encrypted_file.vbe domain\admin rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 z:\vbs.inf
net use z: /d 'Delete the mapping

 

 

 

Publish RsClientPrint control to the domain clients via the Active Directory.

From a high level, you would have to first convert the RsClientPrint.cab file into an MSI file and then publish the MSI file via Active Directory.

The steps in more detail would be:



1. Download the free Visual Studio Installer from the following link. (It will install to Microsoft Visual Studio 6.0.) Microsoft Visual Studio Installer 1.1


Microsoft Visual Studio Installer 1.1

http://msdn2.microsoft.com/en-us/vstudio/aa718352.aspx


2. Launch Visual Studio Installer and create a new project. (I named mine Setup1.)
3. Copy the RsClientPrint.cab file to the Setup1 directory.
4. Create a new subfolder, Cab.
5. Open the RsClientPrint.cab file with Windows Explorer (right click, select Windows Explorer, or simply left double-click).
6. Select all files, right click, Extract.
7. Extract the files to the Cab subfolder.
8. From the Visual Studio Setup1 project view, open the TargetMachine folder, and the Associations view. This will open the Setup1 – Associations window.
9. Right click on COM Objects, Add COM Object. You will need the RsClientPrint’s CLSID and TYPELIB GUIDs. (This is detailed below.)
10. Enter the CLSID under the COM Objects node.
11. Enter the TYPELIB GUID under the Type Libraries node.
12. From the Build menu, select Build Configurations, Release.
13. From the Build menu, select Build.
14. The Setup1.msi file will be created in the Output\DISK_1 folder.

Here are the steps to determine the CLSID and TYPELIB GUIDs for the RsClientPrint control needed in the Visual Studio Installer project.
1. On the ReportingServices server, launch REGEDIT.
2. Open the HKEY_CLASSES_ROOT hive. (It will have MANY entries.)
3. Scroll down until you find the RSClientPrint.RSClientPrint node; open it.
4. Click the CLSID folder; the default value of the Data element on the right side of the window is the CLSID.
5. Doubleclick the (Default) tag; right click, Copy; Cancel. (Don’t change the value!).
6. Paste the value into the COM Objects element from step 10 above. (And, copy the value to a Notepad instance – you’ll need it again now.)
7. Scroll back up the registry values to the CLSID node; open it. (It also has MANY entries.)
8. Find a node that has the same value as the CLSID you just copied; open it. (It will have several folders, including ProgID and Typelib.
9. Click the ProgID node; the (Default) value should be RSClientPrint.RSClientPrint.1 (It is isn’t, you’re in the wrong key.)
10. Click the Typelib node; doubleclick the (Default) tag; right click, Copy; Cancel. (Don’t change the value!).
11. Paste the value into the Type Libraries element from step 11 above.

At this point, are now ready for the remaining steps detailed in the following KB article:
How To Install ActiveX Controls in Internet Explorer Using the Active Directory
http://support.microsoft.com/kb/280579/en-us

 

 

Maria Esteban

Ingeniero de Soporte de Reporting Services

Posted Thursday, December 11, 2008 11:32 AM by mariae | 1 Comments

Filed under:

Report Server cannot start after installing MS08-040 or MS08-052

 

If you install MS08-040 or MS08-052 and you find that the Report Server cannot start any more, you might be facing a known issue with KB954606 and KB948109 which is preventing the SQL Reporting Services service from starting. The security update is the one outlined in the following link:

 

MS08-052: Description of the security update for GDI+ for SQL Server 2005 Service Pack 2 GDR: September 9, 2008

http://support.microsoft.com/?id=954606

or

MS08-040: Description of the security update for SQL Server 2005 GDR: July 8, 2008

http://support.microsoft.com/kb/948109

 

Event Viewer will show the following events:


Event 1
Event Type: Error
Event Source: Service Control Manager
Event Category: None
Event ID: 7000

The ServiceName service failed to start due to the following error:
The service did not respond to the start or control request in a timely fashion.

Event 2
Event Type: Error
Event Source: Service Control Manager
Event Category: None
Event ID: 7011

 

This issue has been reported to Microsoft Support numerous times and has been passed on to developer’s team.

 

One solution would be to increase the default time-out value for the service control manager as per the below article (Please first verify that you see the events 7000 and 7011):

 

A service does not start, and events 7000 and 7011 are logged in Windows Server 2003

http://support.microsoft.com/?id=922918

 

Another solution would be to uninstall the fix and install Cumulative Update 10 for SQL Server 2005 Service Pack 2 in the Reporting Services machine that contains a later version than the partch. You can get it from:

 

Cumulative update package 10 for SQL Server 2005 Service Pack 2

http://support.microsoft.com/kb/956854

 

 

Maria Esteban

Ingeniero de Soporte de Reporting Services

Posted Friday, October 31, 2008 1:14 PM by mariae | 1 Comments

Filed under: ,

How to change the version of Reporting Services 2005 from 64 bits to 32 bits?

Have you ever been in a situation that you installed Reporting Services in a 64 bits machine and then, after a while, you realized that you should have installed the 32 bits version instead?

Or wanted to change from 64 bits version to 32 bits because, suddenly you need to run other asp.net applications that are 32 bits version?

Or you Reporting Services 64 bits was working fine for a while and somebody else installed asp.net 32 bits and your report manager shows the following message:

 

Server Error in '/Reports' Application

Attempted to load a 64-bit assembly on a 32-bit platform. Use ReflectionOnlyLoad()

instead if trying to load for reflection purposes.

 

The cause of this is that you cannot run 32 bits and 64 bits asp.net applications simultaneously in the same machine.

Shifting from version of ASP.NET 32 bit to 64 bit can be easy by following the instructions in the article bellow:

 

How to switch between the 32-bit versions of ASP.NET 1.1 and the 64-bit version of ASP.NET 2.0 on a 64-bit version of Windows

http://support.microsoft.com/default.aspx?scid=kb;EN-US;894435)

 

Side-by-side deployment of 64-bit and 32-bit versions is not supported and there is no way to change Reporting Services version from 32 to 64 or vice versa. You would have to uninstall one version and install the other.

 

Note that there is no need to uninstall SQL Server 2005, just Reporting Services 2005 (RS 2005 is a component of SQL 2005). This is good because sometimes we cannot afford to uninstall SQL Server 2005 and we can just deal with Reporting Services individually.

 

Uninstalling Reporting Services 64 bits version after installing asp.net 32 bits could be a bit tricky. You would have to follow the steps:

1.       If you already have reports created, you would need to backup the databases and the encryption keys in order to restore the data back when you install the new version. You have more info in the article bellow.

How to move a Reporting Services database from a computer that is running Reporting Services to another computer

http://support.microsoft.com/kb/842425

1.       Configure IIS to run in mode 64 bits, Otherwise, you won´t be allowed to uninstall Reporting Services (64):

Open a command prompt window, and then run the following command:

cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 0

2.       Uninstall Reporting Services by choosing the option “Change” from “Add Remove Programs”

3.       Make sure that the virtual folders Reports and ReportServer dont exist in IIS (If they do, remove them manually)

4.       If the databases still exist in Management Studio, you have two options: if you want a new installation and not keeping your old reports and configuration, I would advise you to remove them. If you want to keep the old reports and configuration, leave them and reconnect later.

5.       (OPTIONAL) If .NET framework isn´t installed already, you would do it by:

a.     Run dotnetfx64.exe to install the .NET Framework manually. You can find this file in the Redist folder on the SQL Server Setup media.

b.     In IIS Manager, click the Web Server Extensions folder.

c.     In the Details pane, right-click ASP.NET V2.0.50727, and then click Allowed.

d.     Right-click the Web Sites folder and then select Properties.

e.     Click ISAPI Filters.

f.      In Filter Name, select ASP.NET_2.0.50727, and then click Edit.

g.     Replace "C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" with the 32-bit version that is located in the Framework folder: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll

6.       Configure IIS to run in 32 bits mode and register aspnet 32 bits:

Open a command prompt window, and then run the following command:

cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1

To register aspnet run the following command:

%SYSTEMROOT%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i

7.       Restart IIS by running the command:

IISReset

8.       Install Reporting Services (32 bits)

9.       Install Service Pack 2 of SQL Server 32 bits (only the Reporting Services component will be checked and installed as the version of SQL Server is 64 bits)

10.   Restore the encryption keys previously backed up

 

Maria Esteban

Ingeniero de Soporte de Reporting Services

Posted Friday, September 05, 2008 9:02 AM by mariae | 2 Comments

Filed under: , ,

Querying SharePoint List from Reporting Services returns only “not null” columns

 

Querying to a Sharepoint List from a report in Reporting Services 2005 returns only the columns that contain data. If any of the columns is NULL, they are not returned.

This behavior is due to the Auto derivation the XMLDP: When there is an empty value for the 1st row, the column is not displayed.

 

This is fixed for the next version of Reporting Services (Katmai). For the moment you can use the following workaround, specifying all the columns explicitly (@Column1,@Column2,@Column3,@Column4,@column5,@column6,@column7):

 

<Query>

    <Method Namespace="http://schemas.microsoft.com/sharepoint/soap/" Name="GetListItems">

        <Parameters>

            <Parameter Name="listName">

                <DefaultValue>SomeListName</DefaultValue>

            </Parameter>

            <Parameter Name="viewName">

                <DefaultValue>{d99b0402-38b9-48a5-87e9-2c6bf198a30c}</DefaultValue>

            </Parameter>

        </Parameters>

    </Method>

    <ElementPath IgnoreNamespaces="true">GetListItemsResponse/GetListItemsResult/listitems/data/row{@Column1,@Column2,@Column3,@Column4,@column5,@column6,@column7}</ElementPath>

    <SoapAction>http://schemas.microsoft.com/sharepoint/soap/GetListItems</SoapAction>

</Query>

 

 

Maria Esteban

Ingeniero de Soporte de Reporting Services

Posted Thursday, December 13, 2007 5:47 PM by mariae | 3 Comments

SSL configuration and Reporting Services

  

When installing Reporting Services 2005 with Secured Socket Layer (SSL), it is a common mistake not to install the CA certificate in the trusted root for the local computer.

 

This will lead to the following error trying to access to access the Report Manager you receive the following error message:

 

“The underlying connection was closed: could not establish Trust relationship for the SSL/TLS secure channel"

 

You can verify that the CA certificate is installed in the “Console Root\Certificates (Local Computer)\Trusted Root” following the steps bellow:

1.       Go to start -> run -> type in "mmc" and hit "OK"

2.       This will launch Microsoft management Console

3.       go to File -> Add/remove snap-in

4.       In Add/remove snap-in window, under "Standalone" tab, Click on "Add button"

5.       This will launch Add Standalone Snap-in window

6.       Choose "Certificates" from available snap-ins and click on Add button

7.       This will launch "Certificates snap-in" with three check boxes

- My user Account
- Service Account
- Computer Account

 

8.       Choose " Computer Account" and click on finish (to install the certificate for the machine not for a single user)

9.   Expand Console Root\Certificates (Local Computer)\Trusted Root Certification Authority\Certificates

10.   Right Click on “Certificates” and select Import / All Tasks / Import...) choose the certificate (.cert) and follow the wizard until the end

11.   You will need to restart the IIS before testing the Report Manager (run iisreset from the console)

 

Note: When connecting to Reporting Services from the client machines,  if you want to avoid the message asking you if you trust the server you would have to install the CA certificate in the Trusted root of the client machines. If you install it choosing the “local machine” it will be available for all users that log onto the machine. If you use “User account” it will be available only for that user.

An easy way to remove the message for each user could be to put the certificate file from the CA on a web page and ask the users to connect to it and installing it.

 

 

It is a good idea as well to make sure that the certificate has been configured correctly:

 

1. Go to IIS and the properties of the Default Web Site.  In the Directory Security tab, under "Secure communication" click the "View certificate" button.

2. Make sure there aren't any errors/warnings on neither the General tab nor the Certification Path tab.

3. Get the name from the "Issued to" on the General tab, or the "Subject" property on the Details tab.  This will probably be the fully-qualified domain name (FQDN). 

4. Exit out of IIS Manager.

5. You'll need to make two changes in the config files.  Enter the name from step 3 above in:

 

- UrlRoot entry in the RSReportServer.config

- ReportServerUrl entry in the RSWebApplication.config

You can follow the indications bellow:

Taken from the link:

Using Secure Sockets Layer (SSL) for SQL Server 2000 Reporting Services

http://msdn2.microsoft.com/en-us/library/aa902687(SQL.80).aspx

 

Reporting Services Configuration Files

If you used anything other than the NetBIOS name in the common name for the Web Server Certificate, then you'll need to make several changes to some configuration files to reflect the non-NetBIOS name in the URLs. Also, if you've used the NetBIOS name, you might find it helpful to change the embedded http:// URLs to your server over to https:// URLs. The following paragraphs detail these changes.

·         RSReportServer.config

In RSReportServer.config, which you will find in \Program Files\Microsoft SQL Server\MSSQL.X\Reporting Services\ReportServer, you'll need to locate the <URLRoot> element and update the NetBIOS name to the DNS name, and also the http:// to https://. Take care to use the same case for the letters as you used in the certificate:

So, in our example here we needed to edit the <URLRoot> to be:

<UrlRoot>https://d1.internal.boost.net/ReportServer</UrlRoot>

·         RSWebApplication.config

You'll find RSWebApplication.config in C:\Program Files\Microsoft SQL Server\MSSQL.X\Reporting Services\ReportManager. The change needed here is to update <ReportServerUrl> to include the name used in the certificate.

<ReportServerUrl>https://d1.internal.boost.net/ReportServer</ReportServerUrl>

Finally, the following line in RSReportServer.config governs the master control over SSL:

<Add Key="SecureConnectionLevel" Value="2"/>

Acceptable values are:

·         3 Most secure—Use SSL for absolutely everything.

·         2 Secure—Use SSL for rendering and methods that pass credentials but don't insist on it for all SOAP calls.

·         1 Basic Security—Accepts http but rejects any calls that might be involved in the passing of credentials.

·         0 Least Secure—Don't use SSL at all.

2 is the value that the installation wizard will input if you install with the Use SSL check box selected, but we prefer to use 3 and ensure that the Report Manager is also using SSL.

 

Additionally you can try to open another page in the default web site using ssl and see if It was working fine. This would confirm that the certificate is installed correctly.

 

 

And to check the information in the RSWebApplication.config configuration file: if you specify ReportServerURL, you must delete the value of the entry for ReportServerVirtualDirectory (not the tags just the value if it exists)

 

            Taken from the link:

RSWebApplication Configuration File

http://msdn2.microsoft.com/en-us/library/ms155878.aspx

 

ReportServerUrl     Provides an alternative way to specify the SOAP endpoint of the report server that is used by Report Manager. You can use this setting instead of ReportServerVirtualDirectory when Report Manager and the report server virtual directories are hosted on separate servers or Web sites, or if you need to specify a fully qualified domain name for the report server. ReportServerURL and ReportServerVirtualDirectory are mutually exclusive. If you specify ReportServerURL, you must delete the entry for ReportServerVirtualDirectory. To specify this setting, you must edit the RSWebApplication.config file manually. Valid values include <http://<server>/<reportserver>> or <https://<server>/<reportserver>> if you are using certificates. If Report Manager is installed separately on an Internet-facing Web server, this value must be a fully-qualified domain name that can be used to access a report server instance behind the firewall. This value can never be set to localhost.

If a Secure Sockets Layer (SSL) certificate is installed, this value must be the name of the server that is registered for that certificate. If you get the error "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel", set ReportServerUrl to the fully-qualified domain name of the server for which the certificate was issued. For example, if the certificate is registered to <https://adventure-works.com.onlinesales>, the report server URL would be <https://adventure-works.com.onlinesales/reportserver>.

 

Maria Esteban

Ingeniero de Soporte de Reporting Services

Posted Wednesday, December 12, 2007 2:25 PM by mariae | 1 Comments

Filed under:

Reporting Services Internal Error

 

Over the last months I have bumped into many occurrences of the following error in machines that are Running Reporting Services 2005, and in most of the cases when displaying reports through CRM. The error seems to occur RAMDOMLY:

Reporting Services Error An internal error occurred on the report server. See the error log for more details (rsInternalError)

Additionally, an error message that resembles the following error message is logged in the Reporting Services log file:

……
w3wp!processing!5!
Date - Time:: a ASSERT: Assertion failed! Call stack:
Microsoft.ReportingServices.ReportProcessing.ReportProcessing.UpdateTimingInformation(RunningJobContext jobContext, Int64 totalDurationMs, Int64 reportDataRetrievalDurationMs, Int64 reportRenderingDurationMs)
Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RenderReport(IRenderingExtension renderer, DateTime executionTimeStamp, GetReportChunk getCompiledDefinitionCallback, ProcessingContext pc, RenderingContext rc, CreateReportChunk cacheDataCallback, Boolean& dataCached)
……
w3wp!library!5!
Date - Time:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: An internal error occurred on the report server. See the error log for more details., un-named assertion fired for component processing;
Info: Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: An internal error occurred on the report server. See the error log for more details..

The issue was caused by a problem with the hardware AMD processor with PowerNow technology enabled in the BIOS (using technology Cool'n'Quiet). Please check if that is your case.

The following article describes the underlying cause of it, which seems to be casing secondary effects in other applications like Reporting Services.

SQL Server timing values may be incorrect when you use utilities or technologies that change CPU frequencies

http://support.microsoft.com/default.aspx?scid=kb;EN-US;931279

 

To get rid of this error, first of all, you should find out if your machine has an AMD multi processor by checking the Properties of the “My Computer”, under the general Tab.

If that is the case (If you can confirm that your machine is has an AMD processor) you have 3 options:  1) Update the BIOS on the computer (to disable the Cool'n'Quiet technology from the BIOS), 2) modify the Boot.ini file to use the /usepmtimer switch, or 3) Install Cumulative Update Package 5 for SQL Server 2005 Service Pack 2 (http://support.microsoft.com/default.aspx?scid=KB;LN;943656)

If you choose to modify the boot.ini instead installing the rollup, you can follow these steps:

1.       Log on to the computer by using an account that has administrative credentials.

2.       Click Start, click Run, type notepad c:\boot.ini, and then click OK.

3.       In the Boot.ini file, a line that starts with "default" is located in the "[boot loader]" section. This line specifies the location of the default operating system. The line may appear as follows:

 

default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS

In the "[operating systems]" section, locate the line for the operating system that corresponds to the "default" line. For example, if the computer is running Microsoft Windows Server 2003, Enterprise x64 Edition, the line should resemble the following:

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn

4.       At the end of the line, add a space, and then type /usepmtimer. The line should now resemble the following.

 

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn /usepmtimer

 

5.       Save the file, and then exit Notepad.

6.       Restart the computer.

 

The following is a sample Boot.ini file for a system that contains the /usepmtimer switch.

[boot loader]

timeout=0

default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn /usepmtimer

 

Note: The Boot.ini file is located in the root folder of the system drive.

Programs that use the QueryPerformanceCounter function may perform poorly in Windows Server 2003 and in Windows XP http://support.microsoft.com/kb/895980

 

 Maria Esteban

Ingeniero de Soporte de Reporting Services

Posted Monday, December 10, 2007 2:24 PM by mariae | 2 Comments

Filed under:

Page view tracker