0

最近、SSRS インスタンスを SQL 2008 R2 から新しい SQL 2012 インスタンスにコピーしました。レポート サーバー DB と暗号化キーでバックアップ/復元を実行し、サービス/実行アカウントなどを構成しました。問題なくレポート マネージャーを介してレポートを実行でき、同じ方法で正常に実行される新しいサブスクリプションを作成できます。

ただし、既存のサブスクリプション (R2 で設定) のいずれかが実行される予定の場合は常に、次のエラーで失敗します。

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

これはカスタム セキュリティ コンポーネントに関連していると思われますが、私たちには何もありません。他の目的のためのカスタム DLL はありますが、問題のサブスクリプションが実行されたときに呼び出されることさえないため、そうである可能性はほとんどありません。CAS は、この DLL 用に構成されています。

何を試すべきかについてのアイデアがないので、このエラーを解決するためにどこから始めるべきかについての提案を本当に探しています!

4

1 に答える 1

1

同じ質問をMSDNに投稿したところ、古いサーバーからコピーされたサブスクリプションが、新しいサーバーに存在しないローカルユーザーによって作成された可能性があることを示唆する回答が得られました。

いくつかの調査の結果、これが事実であることが判明しました。SSRSは、サブスクリプションを実行しようとするときに何らかの検証を実行する必要があるため、サブスクリプション作成者(レポートサーバーDBのサブスクリプションテーブルのOwnerIDフィールド)が有効なアカウントである必要があるようです。

これを有効なドメインアカウントに変更すると(ローカルアカウントも同様に機能します)、サブスクリプションはすべて正常に機能します。

于 2012-07-03T08:18:17.703 に答える