I've come up with a solution and I'd like to share my findings with you all:
1. add a reference to the root Reporting Service web service, it can be found in the root of your Reporting Services site in the ASMX file.
Now create an instance of the ReportServices class, customize the parameters (including the output format, your security credentials etc.) then invoke the Render() method ..this will return a byte stream representing the output.
You can then do whatever you want with this depending on what format you specified the output to render as. You'll probably want to use Response.BinaryWrite() on the stream.
The only caveat of this approach is that you can't use the toolbar in the standard Reporting Services interface. I'm guessing the standard interface is an ActiveX control of some sort.
2. This is the method I ended up using. I created a HttpWebRequest object, executed the URL to the Report Server with all the parameters on the query string, then captured the output as a stream and then rendered it directly to the output of the ASPX page initiating the request. This is a good way to conceal the URL of a calling page.
I hope someone will find this useful if they ever come across a similar problem. If anyone has a better approach, I'd be delighted to hear.
|