2009-04-09 91 views
2

我們有一個要求,我們的網絡應用程序將做一個郵件合併,並生成一些Word文檔。當然這很容易使用 Word自動化,但不推薦使用Microsoft http://support.microsoft.com/kb/257757服務器上的字自動化

「微軟目前並不提倡,不支持, 自動化的Microsoft Office應用程序從任何無人值守, 非交互式客戶端應用程序或組件(包括ASP,ASP.NET ,DCOM和NT服務),因爲Office在此環境中運行時,可能會出現不穩定的 行爲和/或死鎖。「

在這種情況下人們通常會做什麼?只要接受Word 將偶爾掛起或去尋求一些第三方解決方案。

回答

4

基本上,你有三種選擇:

  1. 運行在服務器上,並接受這些後果。我從經驗中知道,事情確實出錯了,但取決於你正在做的任務的實時性和高優先級如何,它可能是你可以忍受的事情。基本上,如果你必須這樣做,儘量做盡可能少的Word整合;如果它只是一個郵件合併,那麼你可能會在99.9%的時間內沒有任何問題而逃脫。
  2. 使用第三方解決方案。但從經驗來看,除了這些簡單的文檔外,這些工作從來都沒有做得很好。例如,如果您正在討論將從服務器上的Word文檔生成PDF的內容,它將永遠不會像Word中那樣。
  3. 不是直接調用Word,而是使用.NET自己操作文檔。我甚至用VB6編寫了一些操縱Word/Excel 2007文檔的東西,因爲它們都是非常好的XML格式。你使用2007格式,但它快速和良好。但是像郵件合併之類的東西我不得不手動進行,所以它可能不適合。此解決方案通常更適合操作文檔,而不是替換Word API函數。

從個人的經驗,我已經做了第一次和它的工作不夠好,我們的客戶接受,我與第二搞砸周圍,是永不滿足,我已經做了第三大獲成功(但公平的工作)。總之,人們會根據成本(時間等)與可靠性做各種各樣的評估:對於快速(但不太可靠)的解決方案,我建議選擇1或2,或者爲更可靠(但代價高昂)的解決方案提供3,一。

1

我使用自動化構建了一個Powerpoint應用程序。基本上它是一個幻燈片庫網站,它可以打開多個文件並將幻燈片移動到模板中。

我遇到的第一個問題是安全性,我最終將應用程序設置爲以管理員身份運行,這是不推薦的,大多數地方可能會對該操作不滿。您需要靈活地定製安全設置。

我確實遇到過一些我們從未追蹤過的應用程序池崩潰問題,我相信我也必須讓用戶始終登錄到遠程桌面,但是已斷開連接。

底線是你可以自動工作,但它的哈克。如果你有靈活性和自動化是你最好的選擇,那就去吧。否則,我有兩個想法。

  1. 探索使用Open XML和Open XML SDK
  2. 查找到一個可信的用戶帳戶運行的WCF服務隊。然後讓您的網頁呼叫或排隊處理請求的作業。
+0

你能幫助這個http://stackoverflow.com/questions/22508145/unstable-officepowerpoint-automation? – 2014-03-19 14:20:23