最近上了一批SSRS的新報表,使用者抱怨列印時,會出現"列印時發生錯誤。(0x8007F304)"的錯誤訊息。

印象中,Reporting Service由SQL 2000版本昇級至SQL 2005的SSRS後,有遇過類似問題,絕大部分的原因都來自於列印時會用到的一顆ActiveX元件--RSClientPrint Class。

Google了一下,研判這次遇到的問題也肇因於RSClientPrint的Bug,而MS在SQL 2005 SP1裡已修復了這類問題。因此,我猜想是使用者連上了未裝SP1的Reporting Service主機,安裝到舊版的SSRS RSClientPrint。

要驗證安裝版本,可以開啟C:\WINDOWS\Downloaded Program Files,在清單中找尋一下RSClientPrint Class,後方有個版本欄位: [參考資料]

  • SQL 2000        : 2000.80.1038.0
  • SQL 2005 RTM : 2005.90.1399.0
  • SQL 2005 SP1 : 2005.90.2047.0
  • SQL 2005 SP2 : 2005.90.3042.0

不過,檢測的結果,出問題的機器安裝的RSClientPrint是2000.89.1038.0,不是想像中的2005舊版。進一步詢問,使用者曾試著更新為2005.90.1399.0,但更新後,變成印舊版報表有錯誤。基於先查到的資訊,決定換用SP2最新版2005.90.3042試試手氣,賭一下Bug在SP1後已經修好。

將所有IE關閉,在RSClientPrint Class上按右鍵選移除後,再重新連上SP2版的Reporting Service重新安裝列印元件,問題排除。

PS: 還有個問題,安裝列印元件需要Admin的權限,一般使用者多半不具有管理者身份,導致無法安裝。MSDN提到可否下載安裝ActiveX Control與IE的安全設定有關,另外,也有人找到自動部署安裝的方法,兩種做法都可考慮。


Comments

# by zeanmar

你好 如果在C:\WINDOWS\Downloaded Program Files裡面沒看到他... 可是在開啟報表的那個IE選工具->管理附加元件 這裡面卻有 名稱 RSClientPrint 2005 Class 發行者 Microsoft Corporation 狀態 已啟用 檔案日期 2009年5月27日, 上午 03:26 版本 9.00.4053.00 可是點下去又出現 "無法載入用戶端列印控制項" 這....這要怎麼移除阿 囧rz.....

Post a comment