上回貼出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後仍無法列印,請查詢是否為版本衝突


Comments

# by bigjason

你的方法還沒有試, 不知道可不可? 不過, 我們公司和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)

# by Jeffrey

to bigjason, 謝謝你珍貴的情資,看起來,信件中建議的Compatibility Flags Registry修改法是將原本禁用的RSClientPrint Class再度啟用,十分快速有效,但仍屬鋸箭之計。 再探與三探兩篇文章裡採行的做法是設法升級SSRS,讓網頁中改用新版的RSClientPrint,閃開被禁用元件的地雷,跟"不再使用OWC9的元件。建議您在網頁上升級至OWC11的元件"有異曲同工之妙吧。

# by Brian

對不起,請問一下,目前在server上的RSClientPrint.cab已經更新到2008/08/05的版本了,但在列印按下後,以finder2去看還是 <OBJECT ID="RSClientPrint" CLASSID="CLSID:FA91DF8D-53AB-455D-AB20-F2F023E498D3" ,並沒有更新到 41861299-EAB2-4DCC-986C-802AE12AC499,所以還是出現"無法載入用戶端列印控制項",是否有什麼步驟還需要執行?謝謝!

# by Jeffrey

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

# by Brian

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

# by Jeffrey

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

# by Jennifer

須再安裝Microsoft Report Viewer Redistributable 2005 Service Pack 1. http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=82833f27-081d-4b72-83ef-2836360a904d

# by Brian

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的怨念還是很大的"

# by Jennifer

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

# by Jeffrey

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

# by Temp

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

# by Jeffrey

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

# by Brian

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

# by yvonne

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

# by Lisa

沒錯...我後來就是裝KB954606 ,檔案就更起過去了.. 謝謝大大提供的資訊...

# by Jacks

大家怎麼看 KB960715:Windows XP 的 ActiveX Killbits 安全性更新(2/10) 如果大家對於KB956391是採被動的刪除法的話,面對KB960715大家會怎麼做呢?一樣刪刪刪嗎~~XD 但如果上次大家都用了上面的解法,那這次的更新,諸位會放心的更新嗎?在下完全是不敢更新,請問有人試過了嗎?

# by Jeffrey

to Jacks, 一般來說,會採用Killbit手法解決的漏洞危險性都挺高的,從某個角度來說,威脅性有可能到"一連上某個網站就馬上中獎"的程度。 採取何種策略,端賴你怎麼看待"安全"這件事,在"被攻陷的危險"與"功能失常的風險"間做出取捨,二者都可能付出代價,所以我想應該沒有標準答案。 我個人算是有點資安潔癖,所以應該會採行"安全優先",因為中木馬被入侵的損失難以預測(可能的損害範圍幾乎沒有上限),而系統功能應該可以由Killbit停用的元件去推估可能影響範圍做事前防範或事後補救,好像還比較容易掌握一些。

# by player

你的3個方法都試過 無效 卡在 新的RSClientprint.cab裝不起來 C:\WINDOWS\Downloaded Program Files 會一直有 {FA91DF8D-53AB-455D-AB20-F2F023E498D3} 但狀態不明 (怎膜會裝舊版的ActiveX呢?) 也就是沒有安裝成功? 導致每進報表的頁面 就會跳安裝元件的畫面 但是裝不起來? 又沒錯誤訊息? http://social.technet.microsoft.com/Forums/zh-TW/sqlservermanagementzhcht/thread/a7ac46c8-274c-4804-94e6-818b80e948ac

Post a comment