访问报表服务器的AppPool权限问题

15 asp.net iis reporting reporting-services

我有一台运行在Windows 7计算机上的SQL Server 2008 R2报表服务器以及一个ASP.NET应用程序.ASP.NET应用程序向报表服务器发出请求以显示报表列表,呈现报表等.我的ASP.NET应用程序成功获取报表列表但是当它尝试呈现报表时,我收到以下错误:

The permissions granted to user 'IIS APPPOOL\DefaultAppPool' are insufficient for performing this operation. (rsAccessDenied)

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: Microsoft.Reporting.WebForms.ReportServerException: The permissions granted to user 'IIS APPPOOL\DefaultAppPool' are insufficient for performing this operation. (rsAccessDenied)

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 

[ReportServerException: The permissions granted to user 'IIS APPPOOL\DefaultAppPool' are insufficient for performing this operation. (rsAccessDenied)]
Microsoft.Reporting.WebForms.ServerReportSoapProxy.OnSoapException(SoapException e) +89
Microsoft.Reporting.WebForms.Internal.Soap.ReportingServices2005.Execution.ProxyMethodInvocation.Execute(RSExecutionConnection connection, ProxyMethod`1 initialMethod, ProxyMethod`1 retryMethod) +404
Microsoft.Reporting.WebForms.Internal.Soap.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(String Report, String HistoryID) +180
Microsoft.Reporting.WebForms.ServerReport.EnsureExecutionSession() +79
Microsoft.Reporting.WebForms.ServerReport.GetParameters() +54
Run Code Online (Sandbox Code Playgroud)

注意:这个相同的代码库在运行Windows 7和Windows Server 2008的多台计算机上运行良好.我一直在尝试基于Web搜索的许多不同的东西,但还没有找到解决方案.任何对此的见解将不胜感激.

小智 28

最后算出来.我的Reporting Services配置为本地帐户,而我的IIS应用程序池配置为ApplicationPoolIdentity.我将我的应用程序池更改为LocalSystem并修复了它.希望这些信息对其他人有用,因为我浪费了几个小时来搞清楚这一点.

  • 有关需要此信息的其他人的说明:应用程序池> [YourApp]>设置应用程序池默认值>在Process Model下,将Identity更改为'LocalSystem' (3认同)
  • 在系统帐户下运行应用程序池是不是很危险? (3认同)
  • 我在安全网络上使用它,而不是将其暴露给外界。所以就我而言,安全并不是一个大问题。 (2认同)

Mic*_*icz 19

mreyeros在评论中提出的另一个解决方案是向浏览器管理器中的IIS APPPOOL\DefaultAppPool用户授予浏览器权限.

为此,您应该在主文件夹中打开报表管理器网站(http:/// Reports),单击文件夹设置 - >安全性,单击新建角色分配并输入IIS APPPOOL\DefaultAppPool作为名称,从列表中选择权限.