SQL Server 2008R2レポートサーバーをWindows7マシンと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
注:この同じコードベースは、Windows7およびWindowsServer 2008を実行している複数のマシンで正常に機能しました。Iv'eはWeb検索に基づいてさまざまなことを試みましたが、解決策が見つかりませんでした。これについての洞察をいただければ幸いです。
最後にそれを理解します。 IISのアプリケーションプールがApplicationPoolIdentityに構成されている間に、Reporting Servicesがローカルアカウントに構成されました。アプリケーションプールをLocalSystemに変更し、修正しました。この情報が他のユーザーに役立つことを願っています。私はこれを理解するのに数時間を無駄にしました。
Mreyerosがコメントに記載している別の解決策は、レポートマネージャーのIIS APPPOOL\DefaultAppPoolユーザーにブラウザーのアクセス許可を与えることです。
これを行うには、ホームフォルダーでレポートマネージャーのWebサイト(http:/// Reports)を開き、[フォルダー設定]-> [セキュリティ]をクリックし、[新しい役割の割り当て]をクリックして、名前としてIIS APPPOOL\DefaultAppPoolを入力します。 、リストから権限を選択します。
IISとWindowsServer 2008R2で実行されているレポートサーバーを除いて、ここではほぼ同じ状況です。以前は、独自のアプリケーションプールでasp.netアプリケーションを実行していて、すべてが機能していました。アプリケーションを変更したときDefaultAppPoolに(別の問題のため)、アクセス許可の問題が発生しました。DefaultAppPoolのIDをApplicationPoolIdentityからLocalSystem(IISの[詳細設定])に変更すると、再び機能しました。
Michal Drozdowiczが言ったように、AppPoolユーザーをブラウザーの役割として作成します。足りない部分は
これは悪い習慣だと思うので、アプリケーションプールをLocalSystemに設定したくありません。
Microsoftの推奨事項(LocalSystemを使用せず、ApplicationPoolIdentityを使用)については、ここを参照してください: https://technet.Microsoft.com/en-us/library/jj635855.aspx#AppPools 。
正当化については、ここを参照してください: https://stackoverflow.com/a/510225/44169
説明されているエラーが発生していました。レポートサーバーフォルダーのアクセス許可にアプリプールIDを追加しましたが、これはサブフォルダーのセキュリティ設定によって上書きされていました。サブフォルダーを選択し、[親のセキュリティ設定に戻す]をクリックして、これを修正しました。
In IISアプリケーションプールの変更ApplicationPoolIdentityTOLocalSystemそしてそれは修正されるでしょう。
デフォルトではApplicationPoolIdentityはレポートサービスにアクセスできません。つまり、SSRSレポート
アプリケーションのIDアカウントを変更していない場合、アプリケーションでレポートを実行すると、デフォルトのIDアカウント「ApplicationPoolIdentity」を使用してレポートサーバーにアクセスします。 デフォルトでは、デフォルトにはレポートサーバーにアクセスする権限がありません。したがって、シナリオでは、デフォルトのIDアカウント「ApplicationPoolIdentity」が原因でこのエラーが発生します。アプリケーションプールには、レポートサーバーにアクセスするためのアクセス許可がありません。
詳細情報リンク: