Download a copy of Fiddler. Check to make sure that your browser requests are what you think they are. Watch each request, especially the one that generates the HTTP/400. Does that request look good to you? This will give you a base from which to troubleshoot.
You can fiddle with any of the following:
1) Modify SessionTimeout and SessionAccessTimeout system properties.
Here is a sample script for rs.exe which will set these values for you:
Public Sub Main()
Dim props() as [Property]
props = new [Property] () { new [Property](), new [Property]() }
props(0).Name = "SessionTimeout"
props(0).Value = timeout
props(1).Name = "SessionAccessTimeout"
props(1).Value = timeout
rs.SetSystemProperties(props)
End Sub
You can run this script with the following command:
rs -i sessionTimeout.rss -s http://yourserver.com/reportserver -v timeout="6000"
The timeout is expressed in seconds, so this example sets the SessionTimeout and SessionAccessTimeouts to about an hour and a half.
(via http://blogs.msdn.com/b/jgalla/archive/2006/10/11/session-timeout-during-execution.aspx)
2) Change Report Execution Timeout via Report Manager
Open Report Manager
At the top of the page, click Site Settings. This opens the General Properties page of the site.
Report Execution Timeout
Specify whether report processing times out after a certain number of seconds.
(via http://msdn.microsoft.com/en-us/library/ms181194.aspx)
3) Set the HttpRuntime ExecutionTimeout
- Open the ReportServer’s Web.config file by going to Start -> Administrative Tools -> Internet Information Services.
- From there, expand Web Sites -> Default Web Site, and click on ReportServer. On the right-hand pane, right-click ‘Web.Config’ and select ‘Open’.
- Locate the HttpRuntime parameter. If it doesn’t exist, you will have to create it within the section.
- Set the executionTimeout value to ‘10800’ (3 hours) as shown below:
<system.web>
<httpRuntime executionTimeout = "10800" />
</system.web>
4) Increase the script timeout on the report server
- Go onto your Reporting Server and open up Internet Information Services; right-click on the ReportServer and select Properties.
- Go to the Options tab, and set the ASP Script timeout to 300 seconds (this didn't really work for me).
5) Set the report to never time out on the server
- Open your web browser on the server and go to http://yourserver.com/Reports
- Navigate to the Report location and click on the problem report(s).
- On the left-hand pane, click on Properties.
- In the ‘Report Execution Timeout’ click the ‘Do not timeout report execution’.
(via http://geekswithblogs.net/ssrs/archive/2009/10/30/steps-to-resolve-ssrs-timeout-issues.aspx)
Best Answer
I remeber we had a similar problem a few months ago with Reporting Services 2008 (not 2005).
I think the solution was to "force" the values of Width and Heigth for the desired amount, regardless of the selected item in "Paper size" dropdown box (in Report Properties -> Page Setup)
In our case, we wanted to print in A4, so we set width = 21.59cm and height = 27,94cm, even if selected paper size remains as "Letter".