A while back when I started using a preconfigured server with Windows Server 2008 and SQL Server 2008 I came across the following.
My reports were deployed to the server, they were working fine when using Internet Explorer directly on the server. But when I tried to connect remotely to the Report Manager (http://server.domain/Reports) I got the well-known “Page cannot be displayed” message. Then I tried the Report Server (http://server.domain/ReportServer) and that seemed to work fine. Until I asked it to generate a report, same issue.
I then logged on to the server to have a look if anything was appearing in the SSRS-related log files. I saw the GET requests with the ListChildren command from Report Server getting logged in the HTTP log, but no Render command. Other log files didn’t show anything for the report render requests and neither did the ExecutionLog2 view in the ReportServer database. Which is quite logical of course, if there’s no GET request, there’s no execution either. But hey, I was exploring all options here.
Then I activated HttpWatch to have a look at what was happening with the GET request. And guess what! It was being redirected to HTTPS! So the report server apparently did not accept remote unencrypted connections, it forced the user into HTTPS. But that didn’t work either, probably because no one properly configured SSL.
In my situation there’s no need for the encrypted connection so I started looking for the switch to turn off SSL. I had a look in the Reporting Services Configuration Manager, no checkbox that says “do not redirect to SSL” or similar. Nothing in the Report Server properties either.
Apparently the only way to turn SSL off (or on for that matter) is by changing a setting in the RSReportServer.config file. This setting is called SecureConnectionLevel and valid values are:
|0||Least secure. The report server does not check for a secure connection when Web service methods are invoked. However, all calls to the Web service can still be made to the report server over a secure connection.|
|1||Minimally secure. All Web service calls that are made over an insecure connection and which might pass sensitive data such as user credentials are rejected. However, this setting does not guarantee security. It is still possible for sensitive data sent by the client to the report server to be exposed before the report server handles the request and rejects it.|
|2||Secure. All rendered reports and all Web service calls require a secure connection. This includes all calls to the Render method and requests for rendered reports made through URL access.|
|3||Most secure. All calls made to the Reporting Services SOAP API require a secure connection.|
The descriptions in the table above are copied from the Using Secure Web Service Methods article, see there for more details.
In my situation the setting was set to 2. Changing it to 0 solved my issue. This also explains why the Report Server was partly working. When the security level is set to 2, all calls to Render and other web service methods need to be secure while listing the children can be done unencrypted.
In case you’re interested in actually using SSL, have a look at the Configuring a Report Server for Secure Sockets Layer (SSL) Connections article.
I noticed that my blog item contains links to almost all relevant MSDN BOL pages related to Reporting Services configuration, interesting to keep in mind