SQL Server Reporting Services ignores Alternate Access Mappings When Checking for Report Subscriptions

For SQL Server Reporting Services 2008 R2 and 2012 in SharePoint Integrated Mode, SSRS is leveraging the exact URL the client is using in order to evaluate if a Report Subscription is present.  For example, I have a single Web Application with two AAMs: http://webapp1 and https://webapp1.nauplius.local.  Fairly common scenario.  This user (me) created a blank report and a dummy subscription on the report named Test1.  You can see the Subscription is present in the Manage Subscriptions list:

Cap1[3]

However, we switch to the other AAM, and what do we see on the exact same report?

Cap2[3]

No subscription!
In the Microsoft.ReportServices.SharePoint.UI.ManageSubscriptionPages method, Microsoft is creating the value for m_reportUrl using the current context of the URL the user is using and passing that to the SubscriptionListControl:

We go through a few other methods, but get down to Microsoft.ReportingServices.SharePoint.SharedServices.Client.ReportingWebServiceClient.ListSubscriptions:

We’re still passing down that m_reportUrl value from the page to this function, which finally passes it to:

And because that “this.m_siteUrl” is the same value as m_reportUrl, if you are on a different Alternate Access Mapping than the Subscription was created on, we get no subscriptions.

 

One Comment

  1. Just wanted to thank you posting this. I was banging my head trying to figure out why i couldn't see subscriptions and then it just dawned on me that it probably had something to do with AAM. I knew the subscriptions were there as i saw them in the Subscriptions table in Report Server DB. Process of elimination i was able to figure out that it had to do with which AAM i was using when creating the subscription. I would like to note that the subscriptions view pulls from the Subscriptions table and looks at the field called ReportZone and compares it to the zone you are currently in when requesting the subscriptions. I found that if i just updated the ReportZone with a simple SQL update statement then it corrected any subscriptions that i had setup in a different zone.

Leave a Reply