views:

307

answers:

2

I am having an issue embedding my report into an aspx page.

Here's my setup:
1 Server running SQL Server 2005 and SQL Server 2005 Reporting Services
1 Workstation running XP and VS 2005
The server is not on a domain.
Reporting Services is a default installation.

I have one report called TestMe in a folder called TestReports using a shared datasource.

If I view the report in Report Manager, it renders fine. If I view the report using the http ://myserver/reportserver url it renders fine. If I view the report using the http ://myserver/reportserver?/TestReports/TestMe it renders fine. If I try to view the report using http ://myserver/reportserver/TestReports/TestMe, it just goes to the folder navigation page of the home directory.

My web application is impersonating somebody specific to get around the server not being on a domain. When I call the report from the report viewer using http ://myserver/reportserver as the server and /TestReports/TestMe as the path I get this error:

For security reasons DTD is prohibited in this XML document. To enable DTD processing set the ProhibitDtd property on XmlReaderSettings to false and pass the settings into XmlReader.Create method.

When I change the server to http ://myserver/reportserver? I get this error when I run the report:

Client found response content type of '', but expected 'text/xml'. The request failed with an empty response.

I have been searching for a while and haven't found anything that fixes my issue. Please let me know if there is more information needed.

Thanks in advance,
Kendra

A: 

There are two virtual directories of interest with SSRS.

http://myserver/reportserver is where the web services are. http://myserver/reports is where the Report Manager interface is.

http ://myserver/reportserver?/TestReports/TestMe works because you're going to the web services and passing in a parameter of the 'address' of the report you want. Notice the ? in there, indicating that the rest is a querystring parameter

http ://myserver/reportserver/TestReports/TestMe is trying to go a subdirectory of the virtual directory, which doesn't really exist.

To get your system working using anonymous access, you'll need to tell IIS to be running your website's application pool as a known user, which has sufficient permission to view the report. You can set this up in Report Manager (http://myserver/reports).

See how you go - good luck.

Rob Farley
I'm confused as to why I need anonymous access to reporting services, unless that's what the http ://myserver/reportserver/TestReports/TestMe is trying to do. However, I gave it a try. I have already set up in report services a user that has permission to run the report. And in IIS I changed the app pool Identity to run as said user. I wound up with a service unavailable. Once I changed the app pool back to Network Service, it came back to life.
Kendra
You're trying to get the application to run as someone who is not the current user. You're impersonating a particular account, so you need to give that account permission to do stuff in SSRS. It sounds like you've already done that. The DTD error is the one you need to get fixed up. Try the bottom suggestion at http://forums.asp.net/t/1180524.aspx and see if that helps.
Rob Farley
A: 

well, I am not an expert on reporting services but in my previous company we used to have an aspx page for reports with an IFrame inside that rendered the report. Try that !

hetu