5

我正在尝试将 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}

谁能告诉我我做错了什么?

4

3 回答 3

7

稍微澄清一下 Erikk 的回答。

您要设置以修复此错误的特定安全权限集(报告管理器中至少还有另外两种类型的安全设置)在您所在的报告文件夹的“属性”选项卡的“安全”菜单选项中可用看着。

显然,您不应该对主文件夹的“所有人”组授予完全权限,因为这会继承给所有其他项目和子文件夹并打开一个巨大的安全漏洞。

于 2009-02-06T09:23:21.687 回答
4

您需要授予 Web 应用访问报告的权限。转到您的报告管理器 ( http://servername/reports/ )。我通常只是将整个 Web 服务器的“浏览器”权限授予报告。

您的服务器的帐户名称通常是 Domain\servername$。因此,如果您的服务器名称是“webserver01”并且您的域是 Acme,您将授予帐户 Acme\servername$ 浏览器权限。

我认为您还可以通过在运行报告的 Web 应用程序上禁用匿名访问(在 IIS 中)来修复它,这样报告服务将使用用户凭据而不是 ASPNET 帐户进行身份验证。但这对您来说可能不是一个可行的解决方案。

于 2008-09-26T00:21:15.307 回答
1

问题是您的 ASP.NET 工作进程没有执行您想要的操作的权限。

在服务器(MACHINENAME\ASPNET)上编辑这个用户,并给它更多的权限(它可能需要写权限等)。

您还需要将 MACHINENAME\ASPNET 作为用户添加到 SSRS 正在使用的 SQL 数据库。

于 2008-09-25T23:25:40.853 回答