We are developing some new SSRS reports which require images displayed from Azure blob storage.
After testing, our reports can only display images from HTTP URLs. Any image from HTTPS doesn't display.
So how do i configure report / Report Services Configuration Manager to enable this?
I have tried adding an Execution Account but still no images.
Related
We have a 3-rd party (like a portal) hosting our SSRS Report Viewer inside an iFrame. The source of the iFrame is an ASP.NET web form page with the Report Viewer control. We pass the credentials to the Report Viewer from the code behind and everything works fine. Reports render in the viewer and the aspx page is running on an HTTPS site.
The report developer placed a hyperlink on a report that opens an non-HTTP url to the Report Sever that is supposed to download an Excel file. But the Report Server is behind a DMZ (actually running as a Windows Service and not IIS) and prompts users for credentials and only downloads the Excel file when the Report Server credentials (same ones used by the Report Viewer) are entered. This sounds like a double-hop issue.
Anybody trying to browse to the URL manually also get a prompt until they are authenticated because the SSRS is not in our domain.
TL;DR;
Is there anyway to pass the credentials of the Report Server from within a hyperlink inside the Report Viewer?
Functions as designed. Reports Developer did not really understand implementation details and found a work around.
We have several reports that use .png images for company logos in the header of the reports.
We are deploying reports using the SQL SSRS 2010 webservice. The idea is that the deployment must be done automatically with a script that invokes the SSRS webservice, and it must be 100% unattended
So far, we've successfully uploaded the reports, however, we are not sure how to upload the .png images
Is there any of the webservices methods that can accomplish this? Or is there a way to copy the file directly to somewhere
If you set the image as embedded then the image will be encoded with the .rdl file and you don't have top worry about copying the images.
I am trying to display an SSRS report inside the sharepoint 2010 report viewer web part here is my configuratio
SSRS web service url servername:port/reports
my report path is: Folder/Report1
having entered this information in the web part's configuration all I see is a directory view of all folder
Sever/Reports -/
Data Sources
DataSets
Folder
any ideas?
Thanks
How about trying to configure with servername:port/ReportServer instead ?
These are the web services (/reportserver ... unless your SSRS is configured in an "exotic" way), the other (/server) is the web administration interface.
I have a SSRS report that has a two chart images. After I moved the report from an old server(A server) to a new server(B server). The two chart images in the report didn't show until I refresh the browser.And after I refresh the browser, the two images both work fine.
The charts in the report both use the same shared data sources MyTest.rds. MyTest.rds is on another server(C server). And I just copy all the project in the old server to the new server and deploy it in the new server(B).
And now both A server and B server are work in the same Local Area Network(LNA).
Need I change anything else?
They have the same rd:DataSourceID, does it impact?
And when I click the chart image url, it will show
ASP.NET session has expired or could not be found
Goto your image properties and check the URL. When the first time report loads it cannot find image in the location (URL) specified. Either update the URL or save the images to the location where your URL is referring to.
When you refresh the browser RS looks for the images in the same folder where the report exists. If the images exists then it will show the image
I have a logo at the top of all my reports that I have as an embedded image.
These reports are displayed in an ASP.Net web app via the SSRS web service interface - all pretty standard stuff but the image doesn't render - I just get a broken link.
There are a number of possible solutions for this problem and I've tried a few things including setting UseSessionCookies to false in the ConfigurationInfo table.
What I've noticed is that the image displays fine when I change the anonymous account of the consuming web app from a least privileged service account to my own user account.
I do not understand why this and can't work out what special permissions are needed by my web app's service account to be able to view embedded images in reports.
Can anyone help?
Ok, problem solved. Kind of. The problem isn't limited to embedded images and occurs because I am not using the reporting services viewer.
To summarise:
1) when your web application is making the call to the report server it is fully authorized to do so. A SessionID is generated that is ONLY available to the web application account (i.e. the Service account under which the app runs).
2) the web app outputs the RAW HTML4.0 to the screen.
3) the browser receives the HTML and tries to retrieve the images referenced in the HTML.
4) the browser is running as your user account (e.g. domain\username1)
5) the report server receives a request that looks like:
6) now the SessionID listed in the URL is not associated with domain\username1, so report server claims it does not exist.
When you set the app domain to use the domain\username1 account, then the SessionID happens to be associated with your the account so suddently things 'work'. But the moment real users try the system they complain that the images are missing, since their domain\usernameN does not match the app pool account.
The solutions to this problem are as follows:
1) use the Report Viewer control. This will ensure that the URLs received by the Browser will point back to your web app and your web app identity will be used to retrieve them from the report server.
2) in your web app code, parse the HTML4.0 that you get back from the Render call, fetch and cache all the images, re-write the HTML4.0 links to point to the cached images stored by your web app and then send it to the browser (if this seems complicated... then use the Report Viewer control since it make the scenario work)
3) you can try to use the MHTML output format, this will produce a fully qualified report with images embedded in the since binary stream. The consequence of this is it is harder to embed it within an application page... but not insurmountable
I chose to use a variation on 2) because I don't want to use the report viewer. The logo I'm trying to display is already hosted in the calling web app so I just replace the src attribute of the img tag in the response returned from the SSRS report execution service with the url to this location.
I really don't want to use the report viewer as suggested as the best solution to this issue. Why SSRS has to use session information to return something as simple as a logo that is displayed on all reports is beyond me.... It has taken ages to get to the bottom of this and the solution isn't especially pretty....
Is this an external image? Take a look at this MSDN article that explains the permissions needed for retrieving an image:
When the report is previewed in Report Designer, preview uses the
credentials of the user to display the image. When the report is run
on the report server, the report server uses the unattended execution
account to retrieve the image. If the unattended execution account is
not specified, the image is retrieved using no credentials (anonymous
user account). If either of these accounts have insufficient rights to
access the image, the image will not be displayed in the report.
I would check the permissions on the image in the Report Manager.