SSRS Report Manager - differences between development and production

  • Hello experts,

    I'm working on a Reporting Services project. As part of the project we've built two report servers - one for development/staging and one for production.

    Something odd is happening, though. One of our testers reported that in Internet Explorer 10, running under Windows 8, a report run on the production server doesn't display results. But the same report run on development/staging does.

    I think the underlying issue is one that I've seen reported on various SSRS sites and forums - SSRS doesn't always properly load report results depending on the browser. So I researched some possible solutions including updating the JavaScript files, CSS files, etc.

    I know my initial mistake - not logged each and every change made on both servers. But sadly I didn't do that, so know I'm not sure why reports are blank on production but not on development.

    I've run a WinMerge comparison of the two installation folders to check for differences. I have also put the folders into source control to better track changes going forward, but even after synchronizing the likely files such as ReportViewer.aspx, Report.aspx, and ReportingServices.css, I still see the discrepancy.

    So my question is: Given that I do have some results and have tried the above without success, can anyone advise where to check for differences that might explain this discrepancy?

    Thanks for any help!

    - webrunner

    -------------------
    A SQL query walks into a bar and sees two tables. He walks up to them and asks, "Can I join you?"
    Ref.: http://tkyte.blogspot.com/2009/02/sql-joke.html

  • Do other reports work/render properly?

    Are you 100% certain the data sources are set correctly? It's typical when deploying SSRS reports from BIDS to turn off the "overwrite data sources" option, are you certain it wasn't overwritten with an improper data source?

    Also, check the execution log view on both reporting server's ReportServer databases to ensure you are seeing results for the production run - more specifically values in the bytecount and rowcount columns, as well as times in the Execution, Processing, and Render time columns.

    Execution time is the duration the data set took to execute the SQL query against the data source, processing is the actual time taken for the report to process the data, and render time should be obvious.

    You can use this query to troubleshoot (change as needed)/****** Script for SelectTopNRows command from SSMS ******/

    SELECT TOP 1000

    [ReportPath]

    ,[Format]

    ,[Parameters]

    ,[TimeStart]

    ,[TimeEnd]

    ,(TimeDataRetrieval * .001/60) [ExecutionTime(min)]

    ,([TimeProcessing] * .001/60) [ProcessingTime(min)]

    ,([TimeRendering] * .001/60) [RenderTime(min)]

    ,[ByteCount]

    ,[RowCount]

    FROM [ReportServer].[dbo].[ExecutionLog2]

    WHERE Source = 'LIVE' AND Status = 'rsSuccess'

    AND ReportPath = 'YourReport'

    ORDER BY TimeStart DESC

    ______________________________________________________________________________Never argue with an idiot; Theyll drag you down to their level and beat you with experience

  • MyDoggieJessie (3/17/2014)


    Do other reports work/render properly?

    Are you 100% certain the data sources are set correctly? It's typical when deploying SSRS reports from BIDS to turn off the "overwrite data sources" option, are you certain it wasn't overwritten with an improper data source?

    Also, check the execution log view on both reporting server's ReportServer databases to ensure you are seeing results for the production run - more specifically values in the bytecount and rowcount columns, as well as times in the Execution, Processing, and Render time columns.

    Execution time is the duration the data set took to execute the SQL query against the data source, processing is the actual time taken for the report to process the data, and render time should be obvious.

    You can use this query to troubleshoot (change as needed)/****** Script for SelectTopNRows command from SSMS ******/

    SELECT TOP 1000

    [ReportPath]

    ,[Format]

    ,[Parameters]

    ,[TimeStart]

    ,[TimeEnd]

    ,(TimeDataRetrieval * .001/60) [ExecutionTime(min)]

    ,([TimeProcessing] * .001/60) [ProcessingTime(min)]

    ,([TimeRendering] * .001/60) [RenderTime(min)]

    ,[ByteCount]

    ,[RowCount]

    FROM [ReportServer].[dbo].[ExecutionLog2]

    WHERE Source = 'LIVE' AND Status = 'rsSuccess'

    AND ReportPath = 'YourReport'

    ORDER BY TimeStart DESC

    Thanks for this info!

    The report works fine in IE 11. Using your query, I also see that when I run the report in IE 11, a log entry is added to the report execution log.

    When I run the report in IE 10 on Windows 8, though, the report is blank. The header is there, but there is no report area, and the export option is grayed out. Also, when I try the report that way, no log entry is added to the execution log.

    From what I can tell, the report is using the correct data source. But I did copy reports from the dev/staging server to the production server using this tool:

    http://basitaalishan.com/2013/04/02/sql-server-reporiting-services-migrating-ssrs-reports-data-sources-and-subscriptions-from-one-server-to-another/[/url]

    so it's possible something got messed up. But from what I've read from similar reports, and from the fact that the execution is not being logged, it seems to be an issue with JavaScript or CSS not properly rendering the report part. But I don't know enough about SSRS to know whether, in this problem,

    (1) the execution starts and should be logged

    (2) the execution starts but shouldn't be logged (i.e., wouldn't be logged due to the problem) or

    (3) the execution doesn't even start which is why it isn't logged

    Thanks for any other ideas, and let me know if posting any particular information would help. This elusive discrepancy is driving me nuts!

    - webrunner

    -------------------
    A SQL query walks into a bar and sees two tables. He walks up to them and asks, "Can I join you?"
    Ref.: http://tkyte.blogspot.com/2009/02/sql-joke.html

  • Open the working report up in SSRS, go to properties and click the "Edit" button, this will allow you to download the RDL file.

    Go to the same report that's broken, go to the properties and click the "Update" button, and then upload the downloaded RDL file, and be sure to select overwrite option, click OK or Apply then do to the data source and verify that you have the correct one.

    Execute the report in the Report Manager.

    Does this resolve the issue?

    ______________________________________________________________________________Never argue with an idiot; Theyll drag you down to their level and beat you with experience

  • MyDoggieJessie (3/17/2014)


    Open the working report up in SSRS, go to properties and click the "Edit" button, this will allow you to download the RDL file.

    Go to the same report that's broken, go to the properties and click the "Update" button, and then upload the downloaded RDL file, and be sure to select overwrite option, click OK or Apply then do to the data source and verify that you have the correct one.

    Execute the report in the Report Manager.

    Does this resolve the issue?

    Thanks again! I ran the steps you suggested but no luck. I also ran a text comparison on the RDL files and they are identical except for the server name.

    I think the problem lies elsewhere - maybe there is a way the broken settings are cached so that even though the report settings are the same for both reports, the production server version is still somehow the old one?

    Thanks again for any help.

    - webrunner

    -------------------
    A SQL query walks into a bar and sees two tables. He walks up to them and asks, "Can I join you?"
    Ref.: http://tkyte.blogspot.com/2009/02/sql-joke.html

  • The report works fine in IE 11. Using your query, I also see that when I run the report in IE 11, a log entry is added to the report execution log. When I run the report in IE 10 on Windows 8, though, the report is blank. The header is there, but there is no report area, and the export option is grayed out. Also, when I try the report that way, no log entry is added to the execution log.

    If it is all working in both DEV and PRODUCTION with IE11, then there must be some compatibility issue in the prior version.

    In IE, have you tried enabling "Display a notification about every script error", and possibly making sure there is no check in "Automatically recover from page with layout errors with Compatibility view"? Could be rendering issue...

    ______________________________________________________________________________Never argue with an idiot; Theyll drag you down to their level and beat you with experience

  • Sorry, I did see one other difference, but this was in the html source of the reports.

    In the working report I see this bit of code:

    </div><div id="ctl31_ctl09_ReportArea">

    <div NewContentType="Microsoft.Reporting.WebFormsClient.ReportAreaContent.None" ForNonReportContentArea="false" id="ctl31_ctl09_VisibilityState" style="visibility:none;">

    <input type="hidden" name="ctl31$ctl09$VisibilityState$ctl00" value="None" />

    </div><input type="hidden" name="ctl31$ctl09$ScrollPosition" id="ctl31_ctl09_ScrollPosition" /><span id="ctl31_ctl09_Reserved_AsyncLoadTarget"></span><div id="ctl31_ctl09_ReportControl" style="display:none;">

    <span></span><input type="hidden" name="ctl31$ctl09$ReportControl$ctl02" /><input type="hidden" name="ctl31$ctl09$ReportControl$ctl03" /><input type="hidden" name="ctl31$ctl09$ReportControl$ctl04" id="ctl31_ctl09_ReportControl_ctl04" value="100" />

    </div><div id="ctl31_ctl09_NonReportContent" style="height:100%;width:100%;">

    but in the broken report I see this:

    </div><div id="ctl31_ctl09_ReportArea">

    <div NewContentType="Microsoft.Reporting.WebFormsClient.ReportAreaContent.None" ForNonReportContentArea="false" id="ctl31_ctl09_VisibilityState" style="visibility:none;">

    <input type="hidden" name="ctl31$ctl09$VisibilityState$ctl00" value="None" />

    </div><input type="hidden" name="ctl31$ctl09$ScrollPosition" id="ctl31_ctl09_ScrollPosition" /><span id="ctl31_ctl09_Reserved_AsyncLoadTarget"></span><div id="ctl31_ctl09_ReportControl" style="display:none;">

    <span></span><input type="hidden" name="ctl31$ctl09$ReportControl$ctl02" /><input type="hidden" name="ctl31$ctl09$ReportControl$ctl03" /><input type="hidden" name="ctl31$ctl09$ReportControl$ctl04" id="ctl31_ctl09_ReportControl_ctl04" value="100" />

    </div><div id="ctl31_ctl09_NonReportContent">

    Do you see how the working report has style="height:100%;width:100%;" for the last div, whereas the broken report is missing those attributes? This is the location of the 'ctl' div ids that I have seen referenced in the fixes based on CSS, but I don't know what would be causing that difference between the reports.

    Thanks again,

    webrunner

    -------------------
    A SQL query walks into a bar and sees two tables. He walks up to them and asks, "Can I join you?"
    Ref.: http://tkyte.blogspot.com/2009/02/sql-joke.html

  • Good catch. Are you certain you uploaded the exact copy of the working code in Production? As a test, open up the RDL file XML, add the missing div's and save, re-deploy and see if it works, or if you find it stripped it out again

    ______________________________________________________________________________Never argue with an idiot; Theyll drag you down to their level and beat you with experience

Viewing 8 posts - 1 through 7 (of 7 total)

You must be logged in to reply to this topic. Login to reply