Подтвердить что ты не робот

Ошибка доступа к AppPool при доступе к серверу отчетов

У меня есть сервер отчетов SQL Server 2008 R2, работающий на компьютере под управлением Windows 7, а также приложение 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

Примечание. Эта же база кода отлично работала на нескольких компьютерах под управлением Windows 7 и Windows Server 2008. Iv'e пытался много разных вещей, основанных на веб-поиске, но не нашел решения. Любое понимание этого было бы весьма полезно.

4b9b3361

Ответ 1

Наконец, выясните это. Мои службы Reporting Services были настроены на локальную учетную запись, тогда как мой пул приложений для IIS был настроен на ApplicationPoolIdentity. Я изменил свой пул приложений на LocalSystem и исправил его. Надеюсь, эта информация будет полезна для других, поскольку я потратил несколько часов на то, чтобы понять это.

Ответ 2

Другим решением, как mreyeros, помещать его в комментарий, является предоставление разрешения браузера пользователю IIS APPPOOL\DefaultAppPool в диспетчере отчетов.

Для этого вы должны открыть веб-сайт диспетчера отчетов (http:///Reports) в папке "Главная", выберите "Настройки папки" → "Безопасность", "Новое назначение роли" и введите имя IIS APPPOOL\DefaultAppPool в качестве имени, выберите разрешения из списка.

Ответ 3

Почти такая же ситуация здесь, кроме IIS и сервера отчетов, работающего на Windows Server 2008 R2. Раньше у меня было приложение asp.net с его собственным пулом приложений, и все сработало. Когда я изменил приложение на DefaultAppPool (из-за другой проблемы), я получил проблему с разрешениями. Я изменил Identity DefaultAppPool с ApplicationPoolIdentity на LocalSystem (в IIS, Дополнительные настройки), и он снова работал.

Ответ 4

Как сказал Михал Дроздович, создайте пользователя AppPool как роль браузера. Недопустимая часть

  • Имя пользователя (по крайней мере, в Windows 2012 является "IIS APPPOOL\имя пула". Это точное имя, которое будет отображаться на странице ошибки. Не помещайте кавычки вокруг имени пользователя при вводе в диалоговом окне разрешения.
  • Роль браузера должна быть создана в основной папке. Конечно, если вам нужно разрешение в подпапке, убедитесь, что подпапка по-прежнему наследует разрешения или вручную устанавливает ее

Ответ 5

Я не хочу устанавливать пул приложений в LocalSystem, поскольку я считаю, что это плохая практика.

Для рекомендаций Microsoft (не используйте LocalSystem, используйте ApplicationPoolIdentity), см. здесь: https://technet.microsoft.com/en-us/library/jj635855.aspx#AppPools.

Для обоснования см. здесь: fooobar.com/info/20590/...

Я столкнулся с описанной ошибкой. Я добавил свой идентификатор пула приложений к моим разрешениям в папке "Сервер отчетов", но это было переопределено настройками безопасности подпапки. Я исправил это, выбрав подпапку и нажав "Вернуть настройки родительской безопасности".