about 6 years ago

最近客戶所購買的Office版本,已經有office 2013
按照以往慣例,只要換了office版本就會有許多未知的潛在問題
這次更為神奇的問題出現了
自從Win server 2008後,就有分元件服務32/64位元的差別
預設的服務都是64位元的,所以要呼叫起32位元服務,於搜尋中輸入

mmc -32 

就會將主控台介面開啟為32位元,再從新增嵌入式單元中加入元件服務
Dcom 底下應該就會看到Microsoft Excel Application
由於我們的程式中會有使用VBA生成Excel的指令
因此還需要調整權限,給對應的IIS身分能夠呼叫

但是office2013 從DCome中,找不到以往我們能看到的元件了
這真的是讓人慌了,客戶要上線了,報表卻都出不來
推測幾個可能原因,一個就是微軟不再提供Dcom的方式來產生Excel
另外就是安裝不完整,未註冊等等可能性
找了一些網站的資料

http://www.ranorex.com/forum/excel-connector-not-working-after-installing-excel-2013-t4811.html
http://blogs.technet.com/b/the_microsoft_excel_support_team_blog/archive/2012/11/12/microsoft-excel-does-not-appear-in-dcom-configuration-snap-in.aspx

整理了以下作法:
1.regedit ->搜尋 {00020812-0000-0000-C000-000000000046}
2.將機碼的權限打開,我是設定everyone,當然應該是要對應到你所登入的user上
3.重新開機
4.開啟 mmc -32 中的Dcom 此時應該就會出現了

但問題還沒結束....
以往我們只要設定了使用權限,就能夠正常的來使用,但是這次卻未能如此順利
把執行權限等都設定過一遍之後,問題仍然延續,甚至把執行身分切換成Administrator,也是回應無使用權限的錯誤訊息
此時在Dcom上右鍵,內容,驗證等級"預設值",我將它改成無
一切就在這個時候可以運作了
至於這個驗證等級,如果我將office版本2003-2010,皆是這樣設定為預設值,不曾出現過這樣的錯誤
總而言之,這次的危機是告一個段落了

Daily blog #1 2013-08-29