KB-三探Windows Update後SSRS不能列印問題

上回貼出Windows Update導致SSRS不能列印問題後,有些網友成功了,但似乎有些網友依循文章的解法SP2->GDR2依然不能解決問題,裝完後RSClientPrint.cab仍未更新。由於手邊沒有可以驗證的同樣情境,我想深究也無從嘗試。

今天同事在更新一台SQL時,同樣的情境上演了。GDR2安裝、移除、再安裝了四五次,RSClientPrint.cab還是文風不動,一直保持2007/2/10的版本。

這真是天賜的良機呀!讓這麼刁鑽的問題在我眼前重現,著實令人激動不已... (遇到難題還這麼High,我應該是萬中選一的賤骨頭吧?)

幾經嘗試,我找出一條可以解決的路徑:

安裝SP2,但不要安裝GDR2(KB933097,如果有裝請移除),接著安裝KB954606,這樣RSClientPrint.cab就會更新到2008/08/05的版本了。

先前更新失敗的朋友可以嘗試看看,成功或失敗也回報讓我知一下,謝謝!

【2008-11-04更新】有使用Report Viewer的朋友,請記得還要加裝Microsoft Report Viewer Redistributable 2005 Service Pack 1,ReportViewer所用的RSClientPrint版本才會更新。感謝Jeniffer, Brian補充。

【2013-04-12更新】若安裝ReportViewer 2005 SP1後仍無法列印,請查詢是否為版本衝突

歡迎推文分享:
Published 30 October 2008 07:16 PM 由 Jeffrey
Views: 23,825



意見

# bigjason said on 30 October, 2008 11:37 AM

你的方法還沒有試, 不知道可不可?

不過, 我們公司和MS有簽約, 這是MS的通知, 請參考

------------------------------------------

請各位注意這個月的安全性更新套件KB956391,它有可能會造成OWC & reporting services 2005二個產品的列印功能失效.

目前微軟已注意到這個問題,若已遇到此問題,請採用下列的解決方法來避免.

這個是reporting service的解法

問題說明:

因為安全性的因素,因此KB9563961disable了一項和Active X 的元件,這幾天陸續有客戶反應此Hotfix造成的問題,我們也正在努力解決當中。以下請您先找一台安裝此 Hotfix的機器測試,讓我知道這樣的機碼是否可以解決您的問題。

1.     找到以下的機碼,按右鍵選擇匯出備份。

          HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{FA91DF8D-53AB-455D-AB20-F2F023E498D3}

2.     刪除右方的 Compatibility Flags值。

3.     找到以下的機碼,按右鍵選擇匯出備份。(如果找不到的話,您可以忽略步驟3和步驟4)

          HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\ActiveX Compatibility\{FA91DF8D-53AB-455D-AB20-F2F023E498D3}

4.     刪除右方的 Compatibility Flags值。

5.     再測一次原來的問題是否能解決。

這個是關於OWC的問題,可以參考附件的機碼匯入解決。

因為安全性的因素,在KB956391安裝了後,會將一些OWC9的元件Disable掉。若要解決此問題,我們提供以下二個方式解決:

方式一:在網頁上,不再使用OWC9的元件。建議您在網頁上升級至OWC11的元件,用戶端連到該網頁時,會安裝OWC11。

方式二:在用戶端上匯入附件的機碼(將activex.txt改成activex.reg)

# Jeffrey said on 30 October, 2008 05:59 PM

to bigjason, 謝謝你珍貴的情資,看起來,信件中建議的Compatibility Flags Registry修改法是將原本禁用的RSClientPrint Class再度啟用,十分快速有效,但仍屬鋸箭之計。

再探與三探兩篇文章裡採行的做法是設法升級SSRS,讓網頁中改用新版的RSClientPrint,閃開被禁用元件的地雷,跟"不再使用OWC9的元件。建議您在網頁上升級至OWC11的元件"有異曲同工之妙吧。

# Brian said on 30 October, 2008 11:11 PM

對不起,請問一下,目前在server上的RSClientPrint.cab已經更新到2008/08/05的版本了,但在列印按下後,以finder2去看還是

<OBJECT ID="RSClientPrint" CLASSID="CLSID:FA91DF8D-53AB-455D-AB20-F2F023E498D3" ,並沒有更新到

41861299-EAB2-4DCC-986C-802AE12AC499,所以還是出現"無法載入用戶端列印控制項",是否有什麼步驟還需要執行?謝謝!

# Jeffrey said on 31 October, 2008 03:06 AM

to Brian, 裝完更新,Microsoft.ReportingServices.Diagnostics.dll, ReportingServicesNativeServer.dll, ReportingServicesService.exe, ReportingServicesWebServer.dll, RSClientPrint.cab五個檔案日期會變成2008/8/5,理論上應該就會改用新版元件才對,建議檢查看看連線的主機是否是更新過的主機,再不然清除一下IE的Cache,並IISRESET試試。

# Brian said on 02 November, 2008 08:47 PM

to Jeffery

   你提的那些檔案都已經是2008/8/5的版本了,主機也已經重新開機好幾次了;Client的IE Cache也已經清了,但連上主機網頁,傳出來的還是舊的CLSID,我再多試試,看到底會是什麼原因,謝謝你。

# Jeffrey said on 03 November, 2008 01:05 AM

to Brian, 似乎嗅到鬼打牆的味道。我出個餿主意,你參考看看。把bin底下的擋案故意改名,再連線看看,如果此時網頁仍能正常顯示(電視機插頭都拔掉了還在演?),表示有可能認知與實際連線的Web Application不同,這樣問題反而簡單。但如果這招還不管用,我一時也想不出其他可能性。

# Jennifer said on 03 November, 2008 02:44 AM

須再安裝Microsoft Report Viewer Redistributable 2005 Service Pack 1.

www.microsoft.com/.../details.aspx

# Brian said on 03 November, 2008 10:56 PM

To Jennifer

    非常非常感謝你的意見;裝上Microsoft Report Viewer Redistributable 2005 Service Pack 1,真的可以運作了。

其實如果是直接連上Reporting Server來顯示report,之前所有的動作有確定,就可以執行列印;但如果使用webform的ReportViewer來顯示report,在程式的原始碼中會出現<script src="/PPCMS/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=8.0.50727.42&amp;Name=Scripts.ReportViewer.js"....其中的Version就是舊的,安裝Report Viewer Redistributable 2005 Service Pack 1後,原始碼會變成<script src="/PPCMS/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=8.0.50727.1843&amp;Name=Scripts.ReportViewer.js" ...版本就對了,列印功能就正常了。最後只想"問候一下Bill ,不要以為退休,M$的事就可以不管了哦,所有辛苦PG的怨念還是很大的"

# Jennifer said on 04 November, 2008 01:43 AM

To Brian,

真是說出我的心聲了, 我花了三天才把這個問題解決.

# Jeffrey said on 04 November, 2008 02:26 AM

to Brian, 謝謝你的Feedback, 再跟你確認一下,你的情況是自行寫了WebForm使用ReportViewer供User檢視報表,而不是用超連結至/ReportServer下直接開啟報表,對嗎?

to Jennifer, 謝謝你的分享。

# Temp said on 07 November, 2008 02:52 AM

我用你提供的方法解决了SQL Server 2005的问题,可是我的数据库为SQL Server 2005 Express,那怎么本,怎样更新RSClientPrint.cab的版本

# Jeffrey said on 07 November, 2008 10:09 AM

to Temp, 是指你用的是SQL 2005 Express Advanced Service的Reporting Service嗎? 你試試看這個Hotfix support.microsoft.com/.../zh-tw, 其中的適用對象有包含Microsoft SQL Server 2005 Express Edition with Advanced Services。

# Brian said on 11 November, 2008 02:59 AM

To Jeffery

   我是用WebForm+ReportViewer才會有我描述的狀況!

# yvonne said on 12 November, 2008 04:18 AM

To Jeffery

  我的資料庫是SQL 2005 Express版本,我去下載KB954607安裝,有成功更新RSClientprint.cab也安裝了Microsoft Report Viewer Redistributable 2005 Service Pack 1,但在用戶端按下printer時還是顯示“Unable to load clinet print control",請問還有其它安裝嗎?

# Lisa said on 18 November, 2008 01:30 AM

沒錯...我後來就是裝KB954606 ,檔案就更起過去了..

謝謝大大提供的資訊...

# Jacks said on 12 February, 2009 02:40 AM

大家怎麼看

KB960715:Windows XP 的 ActiveX Killbits 安全性更新(2/10)

如果大家對於KB956391是採被動的刪除法的話,面對KB960715大家會怎麼做呢?一樣刪刪刪嗎~~XD

但如果上次大家都用了上面的解法,那這次的更新,諸位會放心的更新嗎?在下完全是不敢更新,請問有人試過了嗎?

# Jeffrey said on 12 February, 2009 08:28 AM

to Jacks, 一般來說,會採用Killbit手法解決的漏洞危險性都挺高的,從某個角度來說,威脅性有可能到"一連上某個網站就馬上中獎"的程度。

採取何種策略,端賴你怎麼看待"安全"這件事,在"被攻陷的危險"與"功能失常的風險"間做出取捨,二者都可能付出代價,所以我想應該沒有標準答案。

我個人算是有點資安潔癖,所以應該會採行"安全優先",因為中木馬被入侵的損失難以預測(可能的損害範圍幾乎沒有上限),而系統功能應該可以由Killbit停用的元件去推估可能影響範圍做事前防範或事後補救,好像還比較容易掌握一些。

# player said on 24 March, 2009 10:50 PM

你的3個方法都試過

無效

卡在

新的RSClientprint.cab裝不起來

C:\WINDOWS\Downloaded Program Files

會一直有 {FA91DF8D-53AB-455D-AB20-F2F023E498D3}

但狀態不明 (怎膜會裝舊版的ActiveX呢?)

也就是沒有安裝成功?

導致每進報表的頁面

就會跳安裝元件的畫面

但是裝不起來? 又沒錯誤訊息?

social.technet.microsoft.com/.../a7ac46c8-274c-4804-94e6-818b80e948ac

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<October 2008>
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

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

文章典藏
其他功能

這個部落格


Syndication