Hello Dave,
From your description, you are developing a custom httphandler that will
help get SSRS report from SSRS reportserver and display to other client
user through ASP.NET web application, however, you are encountering some
problem with the reportURL used in the handler, correct?
As for your own custom handler, what is the code logic of it, do you simply
copy the Microsoft.Reporting.WebForms.HttpHandler(built-in) class's code
logic? Based on my research, the following URL
========
/ASPNET/V2/WebSites/PostPageSite/Reserved.ReportViewerWebControl.axd?OpType=
DocMapReport&ClientController=ClientControllerReportViewer1&ReportUrl=/ASPNE
T/V2/WebSites/PostPageSite/Reserved.ReportViewerWebControl.axd%3fReportSessi
on%3dr1hwjmr1e5e5moygaqmwpu45%26ControlID%3d0f59883b-da9b-4044-add7-99bcd496
eeb4%26Culture%3d2052%26UICulture%3d1033%26ReportStack%3d1%26OpType%3dReport
Area%26Controller%3dClientControllerReportViewer1%26PageNumber%3d1%26ZoomMod
e%3dPercent%26ZoomPct%3d100%26ReloadDocMap%3dtrue%26EnableFindNext%3dFalse%2
6LinkTarget%3d_to
=============
is dedicated for the Microsoft.Reporting.WebForms.HttpHandler handler and
is not documented. IMO, if you want to write a custom handler than will
retrieve report from backend SSRS server and stream it to front end client,
you can consider use the SSRS 2005's webservice to request and render
report. Actually, the ReportViewer control internally also use the SSRS
2005 webservice to access the report.
If you do want to inspect the ReportUrl used by ReportViewer control and
the axd handler, you may use reflector to investigate the reportviewer and
the handler's code. I've performed some view and find that it is the ""
class which do the DocmapReport render task. It has the following code
logic to parse the querystring:
#In the "Microsoft.Reporting.WebForms.DocMapReportPageOperation" class
==============
public override void PerformOperation(NameValueCollection urlQuery,
HttpResponse response)
{
DocMapReportPage page1 = new DocMapReportPage();
page1.ReportAreaUrl = HandlerOperation.GetAndEnsureParam(urlQuery,
"ReportUrl");
if
(!page1.ReportAreaUrl.StartsWith(HttpHandler.HandlerUri.Uri.PathAndQuery,
StringComparison.OrdinalIgnoreCase))
{
throw new ArgumentOutOfRangeException("ReportUrl");
}
page1.ClientController = HandlerOperation.GetAndEnsureParam(urlQuery,
"ClientController");
HandlerOperation.EnsureValidJavascriptIdentifier(page1.ClientController);
HttpContext.Current.Server.Transfer(page1, true);
}
==============
Hope this helps some.
Sincerely,
Steven Cheng
Microsoft MSDN Online Support Lead
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx. ==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.