Error: Missing URL parameter: Name in Microsoft.ReportViewer.WebForms

I’ve had to deal with this error often now. It goes a little something like this:

Error in 'Microsoft.ReportViewer.WebForms'.
Missing URL parameter: Name
Exception: System.ArgumentException
StackTrace:
at Microsoft.Reporting.WebForms.EmbeddedResourceOperation.PerformOperation(NameValueCollection
urlQuery, HttpResponse response)
at Microsoft.Reporting.WebForms.HttpHandler.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

The problem seems to be that the Uri that the ReportViewer control is sending to the server gets encoded resulting in “&Name=” being converted to “&Name=” (and the same with other parameters.

The ReportServer seems to be smart enough to be able to accept or decode the Uri as the resources get sent back. I’m not sure if the Exceptions that are thrown are thrown and then the Report Server tried to decode the Uri and returns the requested resource, but either way the user seems like they are getting the resource.

I’ve found this and this post which indicates that Bluecoat proxy can be the cause of the mangled Uri.

The second post (here) had an entry that indicated some code that could be run. I suspect that he wanted to replace “&” not “amp;” with “&”, but it is interesting. Here is the code that the person gave:

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
    If Not Request.ServerVariables.Item("HTTP_X_BLUECOAT_VIA") = Nothing Then
        HttpContext.Current.RewritePath(Request.Path & "?" & Replace(Request.QueryString.ToString, Server.UrlEncode("amp;"), "&"), True)
    End If
End Sub

I think the idea that they had has merit. And I hope to try this at a convenient time. Note that I haven’t changed the code example, but think that the test for “amp;” should possible be “&” as there would be “&&” instead of just “&” in the Uri (I suspect 🙂 )

Installing Sql Server 2005 Reporting Services on Vista

Update: (2009-06-26) – Added the Windows x64 server issue.

Update: (2009-10-26) – Added quick note about running IE as administrator in all cases and noted that the notes work with Windows 7

Update: (2009-11-10) – Link to MSDN article on Configuring Report Server for Local Admin on Vista and added another step to the Trusted Sites instructions. Also added a note that I installed Reporting Services to run as Local System.

Update: (2009-11-11) – Added a link and some information from a post on a forum which talked about using Management Studio to assign permissions to the report server (Even though I wasn’t able to connect to the Report Server using Management Studio to try it out… 😦 Groan, Complain!

The introduction of Windows Vista to the world caused some compatibility issues with a variety of software. One of those is an actual Microsoft product.

Sql Server 2005 Reporting Services has been an absolute pain to get running. I’ve nearly spent the whole day trying to get it working so that I can get to the Report Manager and manage the reports.

In this article I’m installing Sql Server 2005 With Advanced Services With SP3 on a Vista Business Box. and will also try and describe some of the errors that you may get and how to fix them.

Prerequisites:

Please note the following:

  • You have to install Sql Server 2005 on a Vista Business, Vista Enterprise or Vista Ultimate box. You can use Vista Basic or Vista Premium.
  • You cannot install Sql Server 2005 Enterprise Edition on Vista Machines.

You need to ensure that several features are installed in Windows as follows:

  1. Go to the Control Panel.
  2. Double click "Programs and Features"
  3. Click "Turn Windows features on or off"
  4. Click "Continue" on the UAC dialog

You now need to select the correct features which are listed below:

Under Internet Information Services | Web Management Tools| IIS 6 Management Compatibility select:

  • IIS 6 WMI Compatibility
  • IIS Metabase and IIS 6 configuration compatibility

Under Internet Information Services | World Wide Web Services | Application Development Features select:

  • ASP.NET
  • ISAPI Extensions
  • ISAPI Filters

Under  Internet Information Services | World Wide Web Services | Common Http Features Select:

  • Default Document
  • Directory Browsing
  • HTTP Errors
  • HTTP Redirection
  • Static Content

Under  Internet Information Services | World Wide Web Services | Security Select:

  • Windows Authentication

Installation

Follow the Microsoft instructions to install Sql Server 2005 (Some of the above information is also included in the instructions provided by Microsoft)

When you get to the Report Server Installation Options dialog select Install the default configuration so that you dont have to configure things manually.

Note: In my setup of Reporting Services I have it running as Local System. You might want to select this for Reporting Services unless you know better 🙂

Post Installation Changes

Ensuring Read, Script and Execute for ReportServer

  1. Open IIS Manager. Open a command prompt and type "inetmgr"
  2. Drill down to the website and click on the "ReportServer" virtual directory (remember that if you have a named instance it will be called "ReportServer$namedinstance"
  3. Under the server components category at the bottom, double click "Handler Mappings"
  4. In the "Actions" sidebar click "Edit Feature Permissions…"
  5. Ensure that "Read", "Script" and "Execute" are all checked!
  6. You might want to restart the application pool or website after this

Turn off SSL Requirement

This is only really for development purposes. In a production environment you might setup SSL. I don’t want it!

  1. On the start menu select All Programs | Micosoft Sql Server 2005 | Configuration Tools | Reporting Services Configuration
  2. Enter the machine name and instance name and connect
  3. Click on the "Report Server Virtual Directory" Item to the left and ensure that the "Require Secure Socket Layer (SSL) connections" is unchecked (unless you want it, which in out case we don’t.)

Set IE Trusted Sites to Include http://localhost (and http://machinename)

This one is actually in the Microsoft instructions for installing Sql Server 2005. Here it is for convenience, as it’s a small thing, but can cause frustration 🙂

  1. Open IE
  2. Select Internet Options on the Tools menu
  3. Click the Security tab.
  4. Click Trusted Sites.
  5. Click the Sites button
  6. Add http://localhost and http://machinename to the list of trusted sites.
  7. Clear the “Require server certification (https:) for all sites in this zone” if not using https.
  8. Click Close and OK

For some reason IE will only show the top section of the home folder without all of the required functionality that you need. This fixes that problem.

For fuller instructions on the above as well as configuring the site security settings, see here.

Errors

This section details some of the errors that I’ve had at variouse times and attempts to give some guidance on how to fix them!

I can see the home page but can’t do anything

See the "Set IE Trusted Sites to Include http://localhost (and http:/machinename)" section above.

It is important that you run IE as administrator also. Once you can see the root folder and the buttons to add folders you can go to the Properties tab and give the appropriate accounts permission to access the folder and any sub folders.

IF you can see the home page but no content (where you have already applied the other fixes) then you can also give yourself permissions using Sql Server Management Studio: at least in some cases. I can’t do that, but someone else I know was able to get around this issue using the method below.

(Below, for convenience, is from this entry on social.msdn.microsoft.com)

The solution that worked for me was:

  1. Run Sql Server Management Studio as Administrator (right click "Run as Administrator")

  2. Connect to a Reporting Services server using Windows Authentication.

  3. Right click Home, Select Properties, Select Permissions.

  4. Click Add Group or User, Type your Username, Click Ok.

  5. Check the box for Content Manager, Click Ok.

Now you can access Reporting Services via Sql Server Management Console without running as administrator.

You should also have permissions to browse Report Manager (http://localhost/Reports).  If not, but you do see the Information Bar complaining then add http://localhost/ to Explorer’s Trusted Sites Zone.

Access is denied: You do not have permission to view this directory or page using the credentials you supplied…

Access is denied.

Server Error in ‘/Reports$JJJ’ Application.


Access is denied.

Description: An error occurred while accessing the resources required to serve this request. You might not have permission to view the requested resources.

Error message 401.3: You do not have permission to view this directory or page using the credentials you supplied (access denied due to Access Control Lists). Ask the Web server’s administrator to give you access to ‘c:\Program Files\Microsoft SQL Server\MSSQL.16\Reporting Services\ReportManager\Pages\Folder.aspx’.


Version Information: Microsoft .NET Framework Version:2.0.50727.4016; ASP.NET Version:2.0.50727.4016

This is an ASP.NET Error. It means that the account I used (which was my normal domain user account) was being impersonated by the web application, but that account doesn’t have rights to the given folder.

Solution:

Give your account "FULL" rights to the folder. It seems not to work with anything less!

Reporting Services Error: The request failed with HTTP status 403: Forbidden

With this error you get an IIS error. Please ensure that you have done what is specified in the the Post Installation Changes section above

IE Error with dialog box asking for credentials

You get the following error after entering your credentials into a dialog box (3 times)

HTTP Error 401.3 – Unauthorized

You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server.

The box asking for credentials must be on that can access  the report manager application folder which for the example I’m currently doing is "c:\Program Files\Microsoft SQL Server\MSSQL.16\Reporting Services\ReportManager\". If the account doens’t have the permissions it will ask another two times and then give you the above error.

You need to got to the directory and add the account you entered so that they have permissions to the directory specified on the error page. If you run as administrator you will probably not get this error, if you use another account you may get it. If you want to add that user then either give them rights to the directory or add them in a group that does have full rights to the given directory.

When you have given the permissions you will get to the home page of the report manager. You have to run as administrator account and then setup the home folder permissions as well as configure site wide security so that the account has system administrator rights.

Error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

This has been caused by the ReportServer virtual directory/application not having Read, Script and Execute features set.

  1. Open IIS Manager. Open a command prompt and type "inetmgr"
  2. Drill down to the website and click on the "ReportServer" virtual directory (remember that if you have a named instance it will be called "ReportServer$namedinstance"
  3. Under the server components category at the bottom, double click "Handler Mappings"
  4. In the "Actions" sidebar click "Edit Feature Permissions…"
  5. Ensure that "Read", "Script" and "Execute" are all checked!
  6. You might want to restart the application pool or website after this

Check the Reports virtual directory/application also.

Windows Server 2003 R2 x64 issue

If you still get the home page of the Report Manager with no content on Windows Server 2003 R2 x64. You can solve it by adding the http://localhost to the Local Intranet Trusted List as shown here

Windows 7 Error – An Unexpected error occured on a recieve – Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.

The underlying connection was closed: An unexpected error occurred on a receive.
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
An existing connection was forcibly closed by the remote host

Have not been able to resolve this at the current moment.

Unable to load Print Control in Reporting Services

Note: Please note that this post will be updated as I get more information on the issues. The idea’s present in this post have not all been tried. I’m trying to gather a list of possibly solutions and will apply them and clean this post up as I go. This post if NOT complete… or not considered complete enough :o)

I’ve been dealing with the following issue when you press the print button on the web based ReportViewer control:

Unable To Load Client Print Control

Unable To Load Client Print Control

There are a variety of possibly causes and solutions and I’m going to try and detail all the possibly options below in easiest to hardest solution: (Please note that this is incomplete and probably a bit messy at the moment)

You don’t have Permissions on the computer to install the ActiveX control

Incomplete

IE is set to dissalow installation of ActiveX controls

Internet Explorer\Tools\Internet Options\Security\Custom Level. Find the options to allow downloading of ActiveX controls.

Incomplete

Try Deleting the ActiveX control from Addons in IE

Symptoms:

Note that I’m not 100% sure whether these symptoms are correct at the moment! Check!

Browser seems to install the ActiveX control.

You get the “Unable to load client print control” error

Solution for IE 7

  1. Tools | Manage Add-ons | Enable of Disable Add-ons.
  2. Find RSClientPrint items. Select them and Click the “Delete” button the the “Delete ActiveX” group box down the bottom right of the dialog. Note: I’ve come across places where this doesn’t work in a company i have dealt with. The Delete button was grayed out. I suspect there is either a permissions or group policy issues that may beed addressing before the
  3. Run the report
  4. Press the print button and re-install the report.

Incomplete

Try Deleting the physical ActiveX control

Someone suggested deleting them at the following location: “C:\WINDOWS\Downloaded Program Files”. Not sure whether this will work? Apparently moving form 2000 to 2005 will required this it seems from the comment found here. Also the new RSClientPrint is supposed to remove issues between 2000 and 2005 (so latest versions should allow side by side use)… I’m only going from memory on this though!

Incomplete

Try manually installing the print client

To manually install the .CAB file:

  1. Get the .cab file from the server Download the .cab file and save it on your desktop. On a test computer it was in the following location. C:\Program Files\Microsoft SQL Server\MSSQL.2\Reporting Services\ReportServer\bin\RSClientPrint.cab
  2. Open the cab file or extract the contents (Vista seems to allow double clicking as if it is a zip file. Not sure about XP etc.)
  3. Right-click the RSClientPrint.inf file.
  4. Click Install

I tried this on Vista and it didn’t work, but this process may work for you?!?! Some people have found that it works

ActiveX Killbits (KB956391) causes issues

An Apparent Fix: http://www.microsoft.com/downloads/details.aspx?familyid=4603C722-2468-4ADB-B945-2ED0458B8F47&displaylang=en

Some say to uninstall the patch. Some say it is a bad idea as it fixes a security issues and that you should just install the fix!

Incomplete

ReportViewer needs updating

The symptoms:

On IE 7 (Not tested on IE6) you run a report and press the print button.

You get the “Unable to load client print control”.

You don’t have the RSClientPrint 2005 Class add on installed in IE (Note that this may be irrelevant. It was the case in my instance)

Solution:

Install the latest version of the Report Viewer control on your server. This will currently mean that you need Report Viewer Control SP 1.

  1. Install SP1 from the link here.  You should have Report Viewer installed anyway otherwise you would probably not see this error ;o)
  2. Restart the Reporting Services application pool in IIS. Please note: If this doesn’t work, try restarting the reporting service obviously restart your application app pool also

Other Resources: