【茶包射手筆記】Word無法在Windows Service中執行

嘗試將先前提過的Word套表服務寫成Windows Service,原本使用Console Application + Self-Hosting ASP.NET Web API測試無誤,移進Windows Service卻壞了。試過將服務執行身分調為本機系統(LocalSystem)或AD網域帳號,錯誤依舊。使用Visual Studio追蹤進程式找到錯誤源頭:

doc = wordApp.Documents.Open(FileName: ref filePath, ReadOnly: ref readOnly);
doc.Activate();

filePath指向的範本docx確定存在,Documents.Open()也未出錯,但執行完doc == null,導致下一列要執行doc.Activate()時爆出NullReferenceException。

同一服務裝在Windows 2003運作順利,在我自己的Windows 2008 R2上也沒問題,問題只發生在另一台Windows 7 32bit開發機器上,一時鬼打牆,瞎抓好一陣子才想到是老問題: c:\windows\syswow64\config\systemprofile\desktop (開始曾一度懷疑,但不知怎麼錯記成它只發生在64bit,連口供都沒問就把人放走... orz)

在32位元Windows 7上開個C:\Windows\System32\config\systemprofile\Desktop資料夾,搞定收工。

補記一點: 掛成Windows Service的程式還能逐行偵錯嗎? Yes, You Can!

執行Windows Service後,用DEBUG/Attach to Process找到該程序掛上去,接下來設中斷點、逐步偵錯的做法就跟直接由VS啟動沒有兩樣囉~ 向地表上最強大的IDE – Visual Studio敬禮!!

歡迎推文分享:
Published 17 August 2013 08:52 AM 由 Jeffrey
Filed under:



意見

# JerryH said on 12 September, 2014 12:42 AM

Windows server 2008 64 bits office 2007 加了desktop

解了null reference

但會遇到這個error System.Runtime.InteropServices.COMException (0x80040155): 介面未登錄 (發生例外狀況於 HRESULT: 0x80040155)

# Jeffrey said on 12 September, 2014 12:54 AM

to JerryH, 試試註冊OLB能否解決。(參考:blog.darkthread.net/post-2013-11-01-word-vsto-issues.aspx )如果成功,麻煩回報,我再補充於文章。

# JerryH said on 12 September, 2014 01:26 AM

找到問題了

我是office 2007更新到SP3問題就解了

謝謝!!

你的看法呢?

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

5 + 3 =

搜尋

Go

<August 2013>
SunMonTueWedThuFriSat
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567
 
RSS
【工商服務】
OrcsWeb: Windows Server Hosting
twMVC
最新回應

Tags 分類檢視
關於作者

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

文章典藏
其他功能

這個部落格


Syndication