2008-09-25 30 views
5

我正在嘗試將SSRS報告集成到我的網頁上。 的代碼如下:如何解決此錯誤:授予用戶'COMPUTERNAME \ ASPNET'的權限不足以執行此操作。 (rsAccessDenied)

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} 

誰能告訴我什麼,我做錯了什麼?

回答

1

問題是您的ASP.NET工作進程沒有權限執行您想要的操作。

在服務器(MACHINENAME \ ASPNET)上編輯此用戶,併爲其授予更多權限(可能需要寫入權限等)。

您還需要將MACHINENAME \ ASPNET作爲用戶添加到SSRS正在使用的SQL數據庫中。

4

您需要讓您的網絡應用訪問您的報告。去你的報告管理器(http://servername/reports/)。我通常只給整個Web服務器「瀏覽器」權限給報告。

您的服務器的帳戶名通常是Domain \ servername $。因此,如果您的服務器名稱是「webserver01」,並且您的域名是Acme,那麼您將授予帳戶Acme \ servername $瀏覽器權限。

我想你也可以通過在運行報表的Web應用程序中禁用匿名訪問(在IIS中)來修復它,這樣報表服務將使用用戶憑證而不是ASPNET帳戶進行驗證。但這對你來說可能不是一個可行的解決方案。

7

澄清埃裏克的答案一點點。

您可以在「屬性」(Properties)選項卡的「安全性」(Security)菜單選項中找到要設置用於修復此錯誤的特定安全權限集合(報表管理器中至少有另外兩種安全性設置)報告您正在查看的文件夾。

不言而喻,您不應該對Home文件夾的「Everyone」組提供完整權限,因爲它會繼承所有其他項目和子文件夾並打開巨大的安全漏洞。

相關問題