我正在尝试将SSRS报告整合到我的网页中。 代码如下:
ReportViewer1.ProcessingMode = rocessingMode.Remote;
ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://localhost/reportserver");
ReportViewer1.ServerReport.ReportPath = "/Report Project1/Reconciliation";
List<ReportParameter> paramList = new List<ReportParameter>();
paramList.Add(new ReportParameter("StartDate", startdate.ToString(), false));
paramList.Add(new ReportParameter("EndDate", enddate.ToString(), false));
this.ReportViewer1.ServerReport.SetParameters(paramList);
ReportViewer1.Visible = true;
尝试运行此报告时出现此错误:
The permissions granted to user 'COMPUTERNAME\\ASPNET' are insufficient for performing this operation. (rsAccessDenied)"}
System.Exception {Microsoft.Reporting.WebForms.ReportServerException}
谁能告诉我我做错了什么?
答案 0 :(得分:7)
澄清Erikk的答案。
您要设置以修复此错误的特定安全权限集(报表管理器中至少还有两种类型的安全设置)可在报告“属性”选项卡的“安全”菜单选项中找到你正在看的文件夹。
不言而喻,您不应该为Home文件夹的“Everyone”组授予完全权限,因为这会继承到所有其他项目和子文件夹并打开一个巨大的安全漏洞。
答案 1 :(得分:4)
您需要让您的网络应用访问您的报告。转到您的报告管理器(http://servername/reports/)。我通常只给整个Web服务器“浏览器”权限报告。
服务器的帐户名通常是Domain \ servername $。因此,如果您的服务器名称为“webserver01”且您的域名为Acme,则您将提供帐户Acme \ servername $ Browser权限。
我认为您还可以通过在运行报表的Web应用程序上禁用匿名访问(在IIS中)来解决此问题,这样报表服务将使用用户凭据而不是ASPNET帐户进行身份验证。但这对您来说可能不是一个可行的解决方案。
答案 2 :(得分:1)
问题是您的ASP.NET辅助进程没有权限执行您想要的操作。
在服务器(MACHINENAME \ ASPNET)上编辑此用户,并为其授予更多权限(可能需要写入权限等)。
您还需要将MACHINENAME \ ASPNET作为用户添加到SSRS正在使用的SQL数据库中。