An Error when attempting to Preview a Report using SQL Server Data Tools in a Remote Session
A customer with whom I work recently encountered an error message when attempting to preview a report using SQL Server Data Tools (SSDT) in a remote session via Citrix.
The error message that was being returned was:
An error prevented the view from loading. (Microsoft Visual Studio)
===================================
An error occurred while attempting to start the report preview worker process. (Microsoft.ReportingServices.Designer)
Given that this scenario worked with previous editions of Reporting Services and BI Development Studio, the error was unexpected. On further investigation, the same behavior and error could be reproduced by launching a Remote Desktop session in Seamless or Remote Applications Integrated Locally (RAIL) mode.
RAIL extends the RDP protocol presents a remote application running on a RAIL server as a local user application running on the client machine. This causes the remote application to appear as if it is running on the user's local computer rather than being presented in the desktop of the remote Server.
In this scenario, the behavior and the error message are both by design.
SSDT is a multi-targeted assembly that is built around the .NET 4.0 Framework. Business Intelligence Development Studio (BIDS) is built around the .NET 3.5 Framework and there are differences in the way that the .NET 4.0 Framework deals with child processes when the parent process dies. As a result, there was a deliberate decision to change the behavior of the report viewer in preview mode. This is largely because under the .NET 4.0 Code Access Security policy, executing under the current AppDomain is no longer supported, necessitating use of a sandbox. You may wish to read Brian Hartman's blog posting "Expression Evaluation in Local Mode" for a more detailed discussion of Visual Studio 2010 defaulting to the .NET 4.0 CAS policy. The net result of the change is that when a report is previewed, SSDT spawns a child process to allow previewing of the report. In the RDP using Seamless or RAIL mode, it would still be necessary for SSDT to spin up a new instance of the Reporting Services Preview Processing Host (PreviewProcessingService.exe) separate from the SSDT process. In the event that the user were to close SSDT or SSDT were to crash, it would be possible for orphaned instances of the Reporting Services Preview Processing Host application to remain in memory and continue execution after SSDT was terminated.
The change makes it cleaner to close SSDT and eliminates the possibility of orphaned child processes in the event that the SSDT environment is terminated for some reason. Had the change not been made, it would have been possible to allow orphaned child applications/processes to continue to execute, using CPU cycles and consuming server memory, until the user logged off the machine. If the user didn’t log off and rather elected to simply disconnect without logging off, any orphaned applications would have remained in memory for an indefinite period of time. In the scenario where a machine is being remotely accessed by multiple users, that could potentially mean thousands of orphaned applications would be in memory and actively executing at any given time.
Comments
Anonymous
August 15, 2013
The comment has been removedAnonymous
October 22, 2013
Have to agree with Tim on this one. We have to use the "runas" option to connect to our production SQL servers and this is going to give us fits trying to work around it. Good to know and I'll pass it on to our reporting team, but frustrating.Anonymous
November 08, 2013
Same situation here. Due to security restrictions on a hosted SQL Server, we have to use VPN + runas to get into the design studio for report building.Anonymous
January 10, 2014
There is a work around for this problem. Right click on the report, then click "Run". This will bring up the report in a seperate viewer. Its hokey, and in 9 years of developing reports, I've never used the "Run" feature, but it works!Anonymous
May 25, 2014
Hey Greenmtnsun! Thanks a lot for the valueable help! Saved my day (and I also do reports since 5 years, and NEVER ever clicked on that button before :-)) cheers, mattAnonymous
June 06, 2014
Thanks Run really worked for me!!!!!Anonymous
July 14, 2014
It's not acceptable. I get that window showing in the May 2014 build of SSDT-BI just running directly on my desktop; no remote desktop necessary. And then it won't go away until SSDT is closed.Anonymous
July 21, 2014
Quick comment no the Run workaround. If you are using SharePoint to host your RDL's and have the link set up in the project, Run will actually deploy first then open the SharePoint version.Anonymous
April 16, 2015
Using the 'run as' and yes. this is now at total PITA.Anonymous
May 28, 2015
Agree with Adam. MS needs to find a way to make the preview pane work again.Anonymous
June 21, 2015
The comment has been removedAnonymous
December 17, 2015
Has this problem anything specifically to do with a Citrix session or does it apply to any RDP scenario? One of our clients is facing the same problem and she is seeking an answer (and most of our customers log into the servers using Citrix). Can anyone help clarifying the so-called anomaly? Thanks a ton in advance, VenkyAnonymous
January 20, 2016
Run saved my day .Thanks!!!Anonymous
February 02, 2016
Run saved my day too. Thanks Greenmtnsun !Anonymous
February 22, 2016
'Run' worked for me too...