Thursday, October 16, 2008 - 文章

【茶包射手專欄】SSRS報表網頁列印失敗

【2008-10-24更新】關於此問題,已有新的研究心得

同事回報,忽然發現SSRS(SQL Server Reporting Service)透過網頁直接列印的功能失效了,一直彈出"無法載入用戶端列印控制項"的錯誤訊息。

試了設為信任網站、刪除Windows\Downloaded Program Files\RSClientPrint Class、重開機等招式都無效。開啟Process Monitor,有看到一大串Registry查詢,但看不出所以然,又懶得抓個正常版來做個馬拉松式比對,今天決定換個戰略進攻...

利用Fiddler抓到SSRS傳回以下HTML內容,就是前述錯誤訊息的由來。

<OBJECT ID="RSClientPrint" 
CLASSID="CLSID:FA91DF8D-53AB-455D-AB20-F2F023E498D3" 
CODEBASE="/Reports/Reserved.ReportViewerWebControl.axd?
ReportSession=yiyl2jjxy5g0j55ra0vsvba&amp; 
ControlID=dec65406970b41ea8b6cde2445d3e4ab&amp; 
Culture=1028&amp;UICulture=31748&amp; ReportStack=1&amp; 
OpType=PrintCab# Version=2005,090,3042,00" 
VIEWASTEXT></OBJECT>
        <script language="javascript">
        function Print()
        {
            if (typeof RSClientPrint.Print == "undefined")
            {
                alert("無法載入用戶端列印控制項。");
                return;
            }

在正常的情況下,當<OBJECT>指定的物件不存在時,應會透過CODEBASE位址自動下載安裝才對,但這台機器在手動刪除Windows\Downloaded Program Files\RSClientPrint Class後仍然未能重新安裝,而導致下方的Javascript檢查失敗。

我的推論是,可能這台機器殘存了某些設定,讓IE誤以為RSClientPrint元件是存在的,故未觸發自動安裝;但實際上元件又未完整註冊(檔案還被我們給砍了哩),搞得不上不下。

既然是ActiveX Control,就從Registry下手吧!

利用RegEdit尋找FA91DF8D-53AB-455D-AB20-F2F023E498D3,在HKCU\Software及HKLM\Software各找到一筆,先匯出備份後刪除:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{FA91DF8D-53AB-455D-AB20-F2F023E498D3}]
"Compatibility Flags"=dword:00000400

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\
{FA91DF8D-53AB-455D-AB20-F2F023E498D3}]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\
{FA91DF8D-53AB-455D-AB20-F2F023E498D3}\iexplore]
"Type"=dword:00000001
"Flags"=dword:00000000
"Count"=dword:00000025
"Time"=hex:d8,07,0a,00,01,00,0d,00,05,00,28,00,1c,00,02,00

將Registry刪除後,仍然無效。重開IE再試,就出現安裝控件的提示了。

問題排除,收工回家。

【2008-10-24更新】
發現刪除Registry只能暫時解決問題,依網友amoswu提供情資,此與KB956391 Hotfix有關,再Google了一下,網路有人找到解決方式了: http://www.dotnetgurus.net/post/2008/10/Reportviewer-Print-Problem-After-KB956391-(ActiveX-Kill-Bits-Update).aspx

搜尋

Go

<October 2008>
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
 
RSS
【工商服務】
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


BlogLook Score and Rank

Syndication