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字段)爲有效帳戶,因爲它在嘗試運行訂閱時必須執行某種驗證。

一旦我將其更改爲有效的域帳戶(本地帳戶也可以正常工作),訂閱一切正常。