SSRS URL Access - Need ExecutionID

Hi,

Can anyone help me. I have a solution that uses a System.Windows.Forms.WebBrowser control to do URL access for SSRS reports. Recently moved this to SQL 2014 from SQL 2008R2. Due to complexities of the system using ReportViewer control is not an option. MUST use URL access.

Previously a Request like

http://localhost/ReportServer?/SomeFolder/SomeReport/RPT614ff05319bb08d2df02c74518f48201&rs:Command=Render

Would trigger a subsequent POST redirect like:

http://localhost:8094/ReportServer/Reserved.ReportViewerWebControl.axd?OpType=SessionKeepAlive&ControlID=a05ab19c946b4ecebb591f6c94153bb1

By means of some jscript I was overriding the XMLHttpRequest.open & XMLHttpRequest.send to be able to intercept this traffic and capture the ExecutionID which was returned.

This ExecutionID could then be used for subsequent page requests setting it to the rs:&SessionID URL parameter. This is important because it keeps the report in the same session for reasons I don't need to go into here. When looking at ExecutionLog3 sproc on the report server DB you only had a single entry for the firt page accessed then no new entries.

THIS IS NO LONGER WORKING. This subsequent request is not happening. Can anyone help with this. I tried using <sessionState cookieless="true" /> because this is supposed to cause the redirect but I am not having any luck.

This was all working in SSRS 2008R2 and now does not in SSRS 2014

Thanks for any assistance.

February 19th, 2015 9:50am

Hi InsightfulCoder,

According to your description, you can access SSRS reports through URL in SSRS 2008R2, after you migrated the reports to SQL Server 2014, when you use the session id to access report, the subsequent request is not happening.

To troubleshoot the problem, please refer to the following steps:

  1. Please make sure the steps you migrate the reports are correct.
  2. Validate that the reports works fine after migration.
  3. Run the report on 2014 server to validate that if the ExecutionID is the same as before.
  4. Navigate to rsreportserver.config (default location: C:\Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER\Reporting Services\ReportServer), Set <EnableAuthPersistence> in rsreportserver.config to False.

For more information about Migrating Reports and Report Server Execution Log, please refer to the following documents:
http://blogs.msdn.com/b/tfssetup/archive/2012/12/19/moving-rdl-files-from-one-reporting-services-instance-to-another.aspx
https://msdn.microsoft.com/en-us/library/ms159110.aspx#bkmk_executionlog3

If you have any more questions, please feel free to ask.

Thanks,
Wendy Fu

If you have any feedback on our support, please click here.

Free Windows Admin Tool Kit Click here and download it now
February 20th, 2015 3:07am

No, that is not the issue at all. When accessing a report via URL access a redirect used to happen in SSRS 2008R2 which generates a POST in the HTTP traffic that has the ExecutionID as the value of the POST. Now in SSRS 2014 this no longer happens.

Have a look at this and look at the SessionID parameter. I have included the text below.

https://msdn.microsoft.com/en-us/library/ms152835.aspx

SessionID

Specifies an   established active report session between the client application and the   report server. The value of this parameter is set to the session identifier.

You can specify   the session ID as a cookie or as part of the URL. When the report server   has been configured not to use session cookies, the first request without a   specified session ID results in a redirection with a session ID.

The report server HAS been configured NOT to use session cookies and this additional redirect (which was the default behavior in SSRS2008R2) is no longer happening. I need this POST statement as I was capturing the ExecutionID from the web traffic.

February 20th, 2015 3:49pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics