0

Недавно я скопировал экземпляр SSRS из SQL 2008 R2 в новый экземпляр SQL 2012. Я выполнил резервное копирование/восстановление в БД сервера отчетов и ключ шифрования и настроил учетные записи службы/выполнения и т. Д. Я могу запускать отчеты через диспетчер отчетов без каких-либо инцидентов, и я могу создавать новые подписки так же, как хорошо.SSRS 2012 Подписки по электронной почте с ошибкой AuthorizationExtensionException

Однако всякий раз, когда один из ранее существующих подписок (созданных в соответствии с R2) из-за запуска он выдает следующее сообщение об ошибке:

Microsoft.ReportingServices.Diagnostics.Utilities.AuthorizationExtensionException: An error occurred when invoking the authorization extension. ---> System.ArgumentNullException: SafeHandle cannot be null. 

Предложение кажется, что это связано с пользовательской безопасности компонентов, но у нас их нет. У нас есть пользовательская DLL для других целей, но она даже не вызывается, когда под подписки, о которой идет речь, работают, поэтому маловероятно, что это так. CAS настроен для этой DLL.

Я действительно ищу предложения о том, с чего начать искать эту ошибку, поскольку у меня нет идей о том, что попробовать!

ответ

1

Я разместил тот же вопрос на MSDN and got an answer, предположив, что подписчики, которые были скопированы с старого сервера, были созданы локальными пользователями, которых нет на новом сервере.

После некоторого расследования это оказалось так. Кажется, что SSRS требует, чтобы создатель подписки (поле OwnerID в таблице «Подписки» в БД сервера отчетов) был действительной учетной записью, так как он должен выполнять некоторую проверку при попытке выполнить подписку.

Как только я изменил это на действительную учетную запись домена (локальная учетная запись будет работать так же хорошо), подписки все работают нормально.