实际上我需要的是一步一步的指导,但无论如何..
我必须使用ASP.NET报告vievew在网站上显示一些rdl报告,并为Reporting Services执行所有必要的配置。页面用户不应处理任何授权。
以下是我的报告查看器代码:
rprtView.ServerReport.ReportServerCredentials = new ReportServerCredentials();
rprtView.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
rprtView.ServerReport.ReportServerUrl = new Uri(@"http://mydomain/reports");
rprtView.ServerReport.ReportPath = @"/MyReports/PurchaseOrder";
rprtView.ShowParameterPrompts = false;
ReportParameter[] parameters = new ReportParameter[1];
parameters[0] = new ReportParameter();
parameters[0].Name = "OrderNumber";
parameters[0].Values.Add(orderNumber);
rprtView.ServerReport.SetParameters(parameters);
rprtView.ServerReport.Refresh();
这是我对IReportServerCredentials的重载
public class ReportServerCredentials : IReportServerCredentials
{
public bool GetFormsCredentials(out Cookie authCookie, out string userName, out string password, out string authority)
{
authCookie = null;
userName = password = authority = null;
return false;
}
public WindowsIdentity ImpersonationUser
{
get { return null; }
}
public ICredentials NetworkCredentials
{
get { return new NetworkCredential("myUserName", "myPassword"); }
}
}
我可以使用“myUserName”和“myPassword”登录到“http:// mydomain / reports”,即SSRS的默认网站(我不确定这是否相关)。我仍然在上面的SetParameters()方法中得到MissingEndPoint异常。它说:
“尝试连接到报表服务器失败。请检查您的连接信息,并且报表服务器是兼容版本。”
我还负责为此方案配置Reporting Services以进行必要的配置,我听说此问题与SSRS中的配置文件有关,但我不知道在其中写什么。非常感谢任何帮助!
答案 0 :(得分:3)
为rprtView.ServerReport.ReportServerUrl提供的字符串应该用于Report Server服务,而不是Report Manager应用程序。
改变这个:
rprtView.ServerReport.ReportServerUrl = new Uri(@"http://mydomain/reports");
到此:
rprtView.ServerReport.ReportServerUrl = new Uri(@"http://mydomain/reportserver");
This page有一些关于Report Manager界面,Report Server Web服务以及它们之间关系的高级信息。