服務(wù)器端Office自動(dòng)化注意事項(xiàng)_第1頁(yè)
服務(wù)器端Office自動(dòng)化注意事項(xiàng)_第2頁(yè)
服務(wù)器端Office自動(dòng)化注意事項(xiàng)_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余12頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、服務(wù)器端 Office 自動(dòng)化注意事項(xiàng)本文內(nèi)容概要更多信息使用服務(wù)器端 Office 自動(dòng)化時(shí) 出現(xiàn)的問(wèn)題運(yùn)行服務(wù)器端時(shí)使用自動(dòng)化的備選方案配置 Office 在服務(wù)器端運(yùn)行參考屬性概要開發(fā)人員可以使用 “ Microsoft Office 自動(dòng)化”來(lái)構(gòu)建利用 Office 產(chǎn)品內(nèi)置的 功能和特性的自定義解決方案。雖然這樣的編程開發(fā)可以在 客戶端系統(tǒng)上相對(duì)容易地實(shí)現(xiàn),可是,如果要通過(guò)服務(wù)器端 代碼(例如, Active Server Pages (ASP) 、DCOM 或 NT Service)進(jìn)行“自動(dòng)化”,就會(huì)發(fā)生許多復(fù)雜情況。本文討 論開發(fā)人員可能會(huì)面對(duì)的這些復(fù)雜情況,提供可以提高性能

2、的“自動(dòng)化”備選方案,并提出在必須要進(jìn)行服務(wù)器端“自 動(dòng)化”的情況下配置 Office 的方法。不過(guò),開發(fā)人員應(yīng)該 知道,下面提供的建議僅供參考。 Microsoft 建議不要進(jìn)行服 務(wù)器端“ Office 自動(dòng)化”,也不為此提供支持。注意:在此 上下文中,“服務(wù)器端”一詞也適用于在Microsoft WindowsNT 或 Microsoft Windows 2000 工作站上運(yùn)行的代碼,前提 是該代碼從所登錄用戶的交互式站以外的 WinStation 運(yùn) 行。例如,由 SYSTEM 帳戶下的“任務(wù)計(jì)劃程序”啟動(dòng)的 代碼運(yùn)行的環(huán)境與 “服務(wù)器端” ASP 或 DCOM 代碼運(yùn)行的 環(huán)境是相同

3、的,因此會(huì)遇到許多相同的問(wèn)題。有關(guān) WinStations 和 COM 的更多信息,請(qǐng)參見(jiàn)“更多信息”和“參考” 這兩部分。 回到頂端 | 提供反饋更多信息 Microsoft Office 所有當(dāng)前版本的設(shè)計(jì)、測(cè)試和配置都是為在客戶端工 作站上作為最終用戶產(chǎn)品運(yùn)行而完成的。它們假定存在一個(gè) 交互式桌面和用戶配置文件,而且不提供滿足為以無(wú)人參與 方式運(yùn)行而設(shè)計(jì)的服務(wù)器端組件的需要所必需的重入或安 全性級(jí)別。 Microsoft 目前建議不要從任何無(wú)人參與的、 非交 互式客戶端應(yīng)用程序或組件(包括ASP、 DCOM 和 NTService)中進(jìn)行 Microsoft Office 應(yīng)用程序的“自

4、動(dòng)化”,也 不為此提供支持,因?yàn)?Office 在這種環(huán)境中運(yùn)行時(shí)可能會(huì) 出現(xiàn)不穩(wěn)定的現(xiàn)象并且 /或者會(huì)死鎖。 如果您要構(gòu)建在服務(wù)器 端上下文中運(yùn)行的解決方案,應(yīng)盡可能嘗試使用對(duì)于以無(wú)人 參與方式執(zhí)行很安全的組件,或找到至少允許一部分代碼在 客戶端運(yùn)行的備選方案。如果您選擇從服務(wù)器端解決方案中 運(yùn)行 Office 應(yīng)用程序,將發(fā)現(xiàn)這樣會(huì)缺少成功運(yùn)行所必需 的許多功能,而且整體解決方案的穩(wěn)定性會(huì)有風(fēng)險(xiǎn)。使用服 務(wù)器端 Office 自動(dòng)化時(shí)出現(xiàn)的問(wèn)題嘗試在服務(wù)器端解決方 案中使用 Office 的開發(fā)人員需要了解 Office 的表現(xiàn)因環(huán) 境而與預(yù)期不同的五個(gè)主要問(wèn)題。要成功運(yùn)行您的代碼,就 需

5、要解決這些問(wèn)題,而且需要盡可能減少它們的影響。您在 構(gòu)建應(yīng)用程序時(shí),要仔細(xì)考慮這些問(wèn)題,因?yàn)闆](méi)有任何一種 解決方案能解決所有這些問(wèn)題,不同的設(shè)計(jì)要求您優(yōu)先考慮 不同的元素。用戶身份: Office 應(yīng)用程序在運(yùn)行時(shí)會(huì)假定存 在一個(gè)用戶身份, 即使在它們由 “自動(dòng)化” 啟動(dòng)時(shí)也是如此。 它們嘗試根據(jù)用戶注冊(cè)表配置單元中的設(shè)置為啟動(dòng)應(yīng)用程 序的用戶初始化工具欄、 菜單、 選項(xiàng)、打印機(jī)和一些加載項(xiàng)。 許多服務(wù)會(huì)在沒(méi)有用戶配置文件的帳戶 (例如, SYSTEM 或 IWAM_servername 帳戶)下運(yùn)行,因此, Office 可能無(wú)法 在啟動(dòng)時(shí)進(jìn)行正確的初始化,進(jìn)而返回一個(gè)有關(guān)“ CreateO

6、bject”或“ CoCreatelnstance” 的錯(cuò)誤。即使能夠在 沒(méi)有用戶配置文件的情況下啟動(dòng) Office 應(yīng)用程序,其他功 能也可能無(wú)法正常工作。 如果您計(jì)劃從某個(gè)服務(wù)進(jìn)行 “ Office 自動(dòng)化”,需要配置您的代碼或Office,以便它使用某個(gè)已加載的用戶配置文件來(lái)運(yùn)行。與桌面的交互性: Office 應(yīng)用 程序假定它們?cè)谀硞€(gè)交互式桌面下運(yùn)行,在有些情況下,可 能需要讓用戶看到它們以便某些“自動(dòng)化”功能正常運(yùn)行。 如果發(fā)生意外錯(cuò)誤,或者需要一個(gè)未指定的參數(shù)才能完成某 項(xiàng)功能,根據(jù)設(shè)計(jì), Office 會(huì)用一個(gè)模式對(duì)話框提示用戶, 詢問(wèn)用戶要進(jìn)行什么操作。非交互式桌面上的模式對(duì)話

7、框是 無(wú)法取消的,這就導(dǎo)致該線程無(wú)限期地停止響應(yīng)(掛起) 。 雖然有些代碼編寫的經(jīng)驗(yàn)做法有助于減少發(fā)生這種情況的 可能性,但還是無(wú)法做到完全防止。正是這種情況使得從服 務(wù)器端環(huán)境運(yùn)行 Office 應(yīng)用程序帶有風(fēng)險(xiǎn),而且不受支持。 重入和可伸縮性:服務(wù)器端組件需要是具有較高可重入性的 多線程 COM 組件,這些組件在有多個(gè)客戶端時(shí)開銷最少而 吞吐量較高。 Office 應(yīng)用程序在幾乎所有方面都正好相反。 它們是非重入的、基于 STA 的“自動(dòng)化”服務(wù)器,是為給 一個(gè)客戶端提供多種多樣但占用資源較多的功能而設(shè)計(jì)的。 它們作為服務(wù)器端解決方案提供不了多少可伸縮性,而且對(duì) 于重要元素有固定的限制,例

8、如,對(duì)于內(nèi)存,無(wú)法通過(guò)配置 進(jìn)行更改。更重要的是,它們要使用全局性資源(例如,映 射到內(nèi)存的文件、 全局加載項(xiàng)或模板, 以及共享的 “自動(dòng)化” 服務(wù)器),這樣可能會(huì)限制能夠并發(fā)運(yùn)行的實(shí)例的數(shù)量,而 且,如果它們是在多客戶端環(huán)境中配置的,還可能導(dǎo)致爭(zhēng)用 的情況。開發(fā)人員如果計(jì)劃同時(shí)運(yùn)行多個(gè)任意“ Office 應(yīng)用 程序”的實(shí)例,就需要考慮“后臺(tái)處理”或序列化對(duì)“ Office 應(yīng)用程序”的訪問(wèn),以避免可能出現(xiàn)的死鎖或數(shù)據(jù)損壞。復(fù) 原性和穩(wěn)定性: Office 2000 、Office XP 和 Office 2003 使用 Microsoft Windows 安裝程序 (MSI) 技術(shù),以使最

9、終用戶在 進(jìn)行安裝和自行修復(fù)時(shí)更加容易。 MSI 推出了 “首次使用時(shí) 安裝”的概念,允許在運(yùn)行時(shí)動(dòng)態(tài)安裝或配置功能(針對(duì)系 統(tǒng),或者更多地針對(duì)特定用戶) 。在服務(wù)器端環(huán)境中,這會(huì) 既降低性能,又增加出現(xiàn)要求用戶同意安裝或提供相應(yīng)安裝 盤的對(duì)話框的可能性。雖然此設(shè)計(jì)旨在增強(qiáng) Office 作為最 終用戶產(chǎn)品的復(fù)原性, 但 Office 實(shí)現(xiàn) MSI 功能在服務(wù)器端 環(huán)境中還是會(huì)對(duì)生產(chǎn)力帶來(lái)不利影響。此外,在服務(wù)器端運(yùn) 行時(shí), Office 的穩(wěn)定性通常無(wú)法得到保障,因?yàn)樗形礊檫@ 樣使用而進(jìn)行設(shè)計(jì)或測(cè)試。在網(wǎng)絡(luò)服務(wù)器上使用 Office 作 為服務(wù)組件可能會(huì)降低這臺(tái)計(jì)算機(jī)的穩(wěn)定性,進(jìn)而降低您的

10、 網(wǎng)絡(luò)作為一個(gè)整體的穩(wěn)定性。如果您計(jì)劃在服務(wù)器端自動(dòng)運(yùn) 行 Office ,請(qǐng)嘗試將該程序隔離到一臺(tái)專用計(jì)算機(jī)上,該計(jì) 算機(jī)不能影響重要功能,而且在需要時(shí)可以重新啟動(dòng)。服務(wù) 器端安全性: Office 應(yīng)用程序從來(lái)都不是為在服務(wù)器端使用 而準(zhǔn)備的,因此,請(qǐng)不要考慮分布式組件所面臨的安全性問(wèn) 題。 Office 不對(duì)傳入的請(qǐng)求進(jìn)行身份驗(yàn)證,而且不會(huì)保護(hù)您 免受無(wú)意中從服務(wù)器端代碼中運(yùn)行宏或啟動(dòng)另一臺(tái)可能會(huì) 運(yùn)行宏的服務(wù)器的損害。不要打開從匿名網(wǎng)站上載到服務(wù)器 上的文件!基于上一次設(shè)置的安全性設(shè)置,服務(wù)器可能會(huì)在 具有全部特權(quán)的 Administrator 或 System 上下文下運(yùn)行 宏,并危

11、及您的網(wǎng)絡(luò)的安全!另外, Office 使用很多客戶端 組件(例如, Simple MAPI 、 WinInet 、 MSDAIPP ),它們會(huì) 緩存客戶端身份驗(yàn)證信息以加快處理速度。如果在服務(wù)器端 進(jìn)行 Office 自動(dòng)化,則一個(gè)實(shí)例可能為多個(gè)客戶端提供服 務(wù),而且由于已經(jīng)為該會(huì)話緩存了身份驗(yàn)證信息,就有可能 出現(xiàn)這樣的情況:一個(gè)客戶端可以使用另一個(gè)客戶端的緩存 憑據(jù),從而通過(guò)模擬其他用戶獲得未經(jīng)授予的訪問(wèn)權(quán)限。除 了要考慮技術(shù)問(wèn)題以外,您還必須考慮這樣一種設(shè)計(jì)在許可 方面的可行性。 目前的許可原則禁止在服務(wù)器上使用 “ Office應(yīng)用程序”為客戶端請(qǐng)求提供服務(wù),除非那些客戶端自己具 有

12、 Office 的許可副本。 最終用戶許可協(xié)議 (EULA) 沒(méi)有 涉及使用服務(wù)器端“自動(dòng)化”向未經(jīng)許可的工作站提供 Office 功能的情況。除了這些比較大的問(wèn)題以外,許多客戶 還發(fā)現(xiàn)在不修改其 Office 默認(rèn)安裝的情況下,嘗試進(jìn)行服 務(wù)器端自動(dòng)化時(shí)可能會(huì)遇到下列常見(jiàn)錯(cuò)誤之一:“CreateObject/CoCreatelnstance”返回以下運(yùn)行時(shí)錯(cuò)誤消息 之一,而且無(wú)法啟動(dòng)進(jìn)行自動(dòng)化。在 Microsoft Visual Basic (VB) 或 ASP 中:消息 1Run-time error 429: ActiveX component cannot create object

13、 消息 2Run-time error 70: Permission denied 在 Microsoft Visual C 或 Visual C+ 中: 消息 1CO_E_SERVER_EXEC_FAlLURE (0x80080005): Server execution failed 消息 2E_ACCESSDENlED (0x80070005): Access denied 出現(xiàn)這些錯(cuò)誤是因?yàn)榉?wù)器端 代碼在沒(méi)有用戶配置文件的情況下運(yùn)行,或者為啟動(dòng)上下文 指定的用戶身份沒(méi)有正確的 DCOM 權(quán)限。打開 Office 文 檔會(huì)導(dǎo)致下列錯(cuò)誤之一:消息 1Run-time error 5981

14、 (0x800A175D): Could not open macro storage 消息 2Run-time error 1004: Method of object failed 通常,出現(xiàn)這種情況 是由于無(wú)法初始化 VBA ,而無(wú)法初始化的原因是權(quán)限不足 或缺少 VBA 組件注冊(cè),當(dāng)用戶從沒(méi)有用戶配置文件的帳戶 中運(yùn)行代碼(問(wèn)題1)并且用戶標(biāo)記不包含“交互式SlD”(問(wèn)題 2)時(shí),這兩種原因都很常見(jiàn)?!癈reateObject/CoCreatelnstance” 掛起并無(wú)法完成,或者需 要很長(zhǎng)時(shí)間才能返回。在有些服務(wù)器上,創(chuàng)建很快完成,但 Windows (NT) 事件日志中出現(xiàn) 10

15、04 錯(cuò)誤。問(wèn)題通常是出 現(xiàn)一個(gè)運(yùn)行服務(wù)器端代碼的非交互式桌面的模式對(duì)話框(問(wèn) 題 2 )。如果出現(xiàn)該對(duì)話框的原因是某個(gè)MSl 組件安裝有問(wèn)題(丟失注冊(cè)表項(xiàng)或文件映像損壞) ,它會(huì)在找不到安裝點(diǎn) 時(shí)提示需要安裝 CD ,然后執(zhí)行一個(gè)或多個(gè)組件的重新安裝 (問(wèn)題 4)。某些功能會(huì)意外失敗或無(wú)限期掛起。在非交互的情況下(問(wèn)題 2),某些資源(例如打印機(jī)、映射的驅(qū)動(dòng) 器、OLE嵌入對(duì)象和剪貼板) 可能變得無(wú)法使用, 或者它們 的狀態(tài)可能變得不確定。同樣,如果沒(méi)有用戶配置文件(問(wèn) 題 1),則網(wǎng)絡(luò)資源無(wú)法使用,而且權(quán)限最小。運(yùn)行多個(gè)請(qǐng) 求或壓力測(cè)試可能導(dǎo)致在創(chuàng)建或終止 Office 應(yīng)用程序時(shí)代 碼失

16、敗、掛起或崩潰。一旦出現(xiàn)這種情況,進(jìn)程會(huì)在內(nèi)存中 保持運(yùn)行狀態(tài)且無(wú)法終止,或者正在自動(dòng)化的應(yīng)用程序的所 有實(shí)例都從該點(diǎn)開始失敗。由于 Office 應(yīng)用程序要共享全 局性資源(問(wèn)題 3),所以需要針對(duì)特定的操作(包括啟動(dòng)、 關(guān)機(jī)、 打印、 導(dǎo)出和 OLE 鏈接更新 (包括任何 DDE 通知) 這樣的事件)序列化對(duì)某個(gè) Office 應(yīng)用程序的訪問(wèn)。除了 此處列出的問(wèn)題或消息之外,還可能出現(xiàn)一些其他問(wèn)題和消 息,但它們通常作為前面列出的五個(gè)問(wèn)題的結(jié)果出現(xiàn)。為了 解決這幾種錯(cuò)誤,開發(fā)人員應(yīng)該將 Office 的操作環(huán)境配置為模擬客戶端狀態(tài),或者從任何服務(wù)器端代碼中刪除 Office 應(yīng)用程序并改為

17、使用更穩(wěn)定的組件(或客戶端“自動(dòng)化” )。 運(yùn)行服務(wù)器端時(shí)使用自動(dòng)化的備選方案 Microsoft 極力建議 開發(fā)人員在需要開發(fā)服務(wù)器端解決方案時(shí)尋找“ Office 自動(dòng) 化”的備選方案。 由于 Office 設(shè)計(jì)上的局限性, 更改 Office 配置不足以解決所有的問(wèn)題。 Microsoft 提供了很多備選方案 建議,這些方案不需要在服務(wù)器端安裝Office ,而且可以比“自動(dòng)化”更高效、更迅速地執(zhí)行大多數(shù)常規(guī)任務(wù)。在將 Office 作為您的項(xiàng)目中的服務(wù)器端組件之前,請(qǐng)先考慮備選 方案。大多數(shù)服務(wù)器端“自動(dòng)化”任務(wù)包括創(chuàng)建文檔。由于 Office 2000 及更高版本支持 HTML 作為

18、本機(jī)文檔格式, 所 以大多數(shù)文檔可以用 HTML 格式創(chuàng)建,在需要時(shí)還可以使 用可擴(kuò)展標(biāo)記語(yǔ)言 (XML) 標(biāo)記,而且還可以通過(guò)使用多用 途 Internet 郵件擴(kuò)展 (MIME) 類型將數(shù)據(jù)流傳輸?shù)娇蛻?端,以便在 Office 中顯示最終文本。文檔可以被編輯和保 存,甚至在需要時(shí)通過(guò)在服務(wù)器上使用 ASP 即可將文檔返 回到服務(wù)器。對(duì)于 Office 的早期版本,使用其他便于操作 的文本格式(例如 RTF)可以實(shí)現(xiàn)同樣的效果。有些本機(jī)二 進(jìn)制格式可以通過(guò)使用 Office Web 組件 (OWC) 或 ActiveX 數(shù)據(jù)對(duì)象 (ADO) 來(lái)編輯,速度更快,穩(wěn)定性也更 高。不進(jìn)行“自動(dòng)化

19、”也可以查看或更改文檔屬性,通過(guò)使 用 FrontPage Server Extensions (FPSE) 或分布式創(chuàng)作及版本 控制 (DA V) ,可以進(jìn)行文件管理和版本控制。 如果必須要進(jìn) 行“自動(dòng)化”,可以將大多數(shù)任務(wù)卸載到客戶端,這樣系統(tǒng) 的穩(wěn)定性和可伸縮性都會(huì)更高,因?yàn)槊總€(gè)用戶都在自己的上 下文中用自己的設(shè)置運(yùn)行任務(wù)。 有關(guān)這些主題中的任意一 個(gè)以及說(shuō)明如何實(shí)現(xiàn)它們的示例的更多信息,請(qǐng)單擊下面的 文章編號(hào),以查看 Microsoft 知識(shí)庫(kù)中相應(yīng)的文章: 270906 如何使用 ASP 生成 RTF 文檔以將數(shù)據(jù)流傳送到 Microsoft Word198703 如何從客戶端 VB

20、Script 自動(dòng)化 Excel199841 如何在 IE 中使用 Excel 以 MIME 類型顯示 ASP 結(jié)果 224351 使用 Dsofile.dll 可以在 Visual Basic .NET 2003 和 Visual Basic .NET 2002 中沒(méi)有 Office 的情況下編輯 Office 文檔屬性 244049 如何使用服務(wù)器端 的制作圖表功能來(lái)動(dòng)態(tài)生成圖表 258187 OWebComp.exe 包 含用于 Office 2000 Web 組件的腳本示例 260239 如何在使 用 Active Server Pages 頁(yè)創(chuàng)建 Excel 文件時(shí)設(shè)置單元格數(shù) 據(jù)的

21、格式 278973 ExcelADO 演示如何在 Excel 工作簿中使 用 ADO 來(lái)讀寫數(shù)據(jù) 286023 如何從 Internet Explorer 中將 VB ActiveX 組件用于 Word 自動(dòng)化 288130 如何使用 ASP 構(gòu)建在客戶端顯示的 XML 電子表格 317316 Office Web 組 件在服務(wù)器端使用時(shí)的限制如果您的業(yè)務(wù)需要在服務(wù)器端 創(chuàng)建二進(jìn)制 Office 文件,有些第三方供應(yīng)商提供的組件可 對(duì)您有所幫助。下面的列表列出了提供此類服務(wù)的某些著名供應(yīng)商。此列表僅作為參考。列表的內(nèi)容并不完整。其他供 應(yīng)商可能會(huì)提供更適于您的類似服務(wù)。您應(yīng)當(dāng)調(diào)查所有可能 的第

22、三方解決方案,以選擇最能滿足您的業(yè)務(wù)需要的供應(yīng) 商。目前,以下供應(yīng)商提供了一些解決方案,這些方案允許 以編程方式創(chuàng)建和編輯本機(jī) Office 文件格式。 有關(guān)這些第 三方供應(yīng)商的更多信息,請(qǐng)?jiān)L問(wèn)下面的網(wǎng)站:Aia Software注意 本文 中提到的第三方產(chǎn)品由 Microsoft 以外的其他公司提供。對(duì) 于這些產(chǎn)品的性能或可靠性, Microsoft 不作任何暗示保證或 其他形式的保證。配置 Office 在服務(wù)器端運(yùn)行如果沒(méi)有其 他可行的解決方案, 并且您決定繼續(xù)在服務(wù)器端進(jìn)行 “ Office 自動(dòng)化”,您需要解決前面列出的許多問(wèn)題才能在這種環(huán)境 中成功運(yùn)行。由于大多數(shù)問(wèn)題都是與配置相關(guān)

23、的,所以無(wú)法 給出一套讓“ Office 自動(dòng)化”在所有系統(tǒng)的所有情況下都能 在服務(wù)器端正常運(yùn)行的步驟。有些配置設(shè)置可能會(huì)與其他選 項(xiàng)沖突,每種方法都各有利弊。您可能需要不斷試驗(yàn),才會(huì) 找到最適用于您的環(huán)境的方案。 要從服務(wù)器端代碼中進(jìn)行 “Office 自動(dòng)化”,一般需要完成以下任務(wù):設(shè)計(jì)您的項(xiàng)目 以隔離和封裝 Office 。為項(xiàng)目編寫代碼時(shí)要預(yù)見(jiàn)到問(wèn)題并尋 求能夠動(dòng)態(tài)更正這些問(wèn)題的方法。為項(xiàng)目提供一個(gè)供 Office 使用的特定用戶身份和配置文件。您的項(xiàng)目設(shè)計(jì)方案要考慮 到在嘗試使用“ Office 自動(dòng)化”時(shí)服務(wù)器端安全性和 Office 非重入性方面的問(wèn)題。將對(duì) Office 的使用

24、限制到某個(gè)特定 實(shí)例,由一個(gè)序列化對(duì)象( mutex 或自定義的鎖定基元)來(lái) 控制這個(gè)實(shí)例,或者,利用能夠在需要時(shí)發(fā)出應(yīng)用程序?qū)ο?的自定義對(duì)象處理程序(或中間裝置)來(lái)“后臺(tái)處理”一組 控制緊密的實(shí)例,但要控制那些需要序列化的方面。 Office 假定存在一定數(shù)量的狀態(tài),所以多個(gè)同時(shí)執(zhí)行某些操作(例 如,啟動(dòng)、關(guān)機(jī)、打印,等等)的客戶端會(huì)導(dǎo)致沖突,而且 可能鎖死一個(gè)或多個(gè)調(diào)用線程,其現(xiàn)象是:顯示一條錯(cuò)誤, 提示用戶參考更多信息,或者拒絕釋放所有實(shí)例占用的全局 性資源。因此,首先要限制服務(wù)器端設(shè)計(jì)中對(duì)“ Office 自動(dòng) 化”的使用,并且將進(jìn)程隔離到一臺(tái)在需要時(shí)可以重新啟動(dòng) 的不太重要的計(jì)算機(jī)

25、上。還要隔離調(diào)用上下文,這樣,掛起 的調(diào)用客戶端就不會(huì)降低必不可少的系統(tǒng)服務(wù)的性能。例 如,不要使用系統(tǒng)線程直接從 IIS 中進(jìn)行自動(dòng)化操作, 而是 要將代碼隔離到在它自己的線程上運(yùn)行, 這樣,即使它失敗, 一般也不會(huì)影響 IIS 功能。 另外,還要考慮您的設(shè)計(jì)如何實(shí) 施安全性和身份驗(yàn)證。由于 Office 不實(shí)施服務(wù)器端安全性, 所以您的代碼需要確保只有“受信任”的代碼模塊(例如, ASP 頁(yè)、腳本文件, 等等) 才能創(chuàng)建 Office 應(yīng)用程序的 “自 動(dòng)化”實(shí)例并調(diào)用其方法,還要確保所有文檔在您讓 Office 打開它們之前都是安全的。服務(wù)器上的 Office 應(yīng)用程序應(yīng) 該無(wú)論何時(shí)都以

26、“高”安全性運(yùn)行。如果您的設(shè)計(jì)不實(shí)施安 全性,您的服務(wù)器就會(huì)面臨風(fēng)險(xiǎn)!一旦設(shè)計(jì)方案就位,您就 應(yīng)該編寫防御性代碼,以嘗試預(yù)防問(wèn)題發(fā)生,并在問(wèn)題發(fā)生 時(shí)處理錯(cuò)誤。您的代碼一定要傳遞可選參數(shù)的值,因?yàn)槿鄙?的或有沖突的值有時(shí)要求 Office 提示用戶參考更多信息。 在所有功能中使用錯(cuò)誤陷阱,正確地處理錯(cuò)誤條件,并通過(guò) 使用可以利用一個(gè)自定義設(shè)置 (在注冊(cè)表或 INI 文件中) 來(lái) 打開或關(guān)閉的日志記錄代碼來(lái)記錄這些錯(cuò)誤。如果您執(zhí)行一 項(xiàng)可能導(dǎo)致出現(xiàn)獨(dú)立于 Office 顯示的錯(cuò)誤對(duì)話框的操作 (例如,打印可能導(dǎo)致打印機(jī)驅(qū)動(dòng)程序在打印機(jī)缺紙時(shí)顯示 對(duì)話框),就要準(zhǔn)備處理可能出現(xiàn)的死鎖,方法是通過(guò)使

27、用 超時(shí)或第二線程來(lái)監(jiān)控進(jìn)程。有關(guān)更多信息,請(qǐng)參見(jiàn)下面的 Microsoft 知識(shí)庫(kù)文章: 259971 如何使用 Visual Basic 關(guān)閉 Office 應(yīng)用程序顯示的對(duì)話框使用您的日志記錄代碼來(lái)跟 蹤問(wèn)題和調(diào)試程序。如果您使用自定義對(duì)象池,可以添加性 能測(cè)試和可伸縮性測(cè)試,以監(jiān)控使用情況并記錄影響所有客 戶端的問(wèn)題。通過(guò)一個(gè)中央控制程序,您還可以在需要時(shí)終 止 Office 的錯(cuò)誤實(shí)例并隨后重新創(chuàng)建它們,以增強(qiáng)總體穩(wěn) 定性。在程序準(zhǔn)備就緒可以部署之后,一定要在服務(wù)器上正 確配置 Office ,以便運(yùn)行合適的用戶上下文。 Office 需要用 戶配置文件,并且必須確保它在加載時(shí)有一個(gè)

28、配置文件才能 成功實(shí)現(xiàn)自動(dòng)化。在服務(wù)器端環(huán)境中工作時(shí),有三種方法可 以做到這一點(diǎn):將“自動(dòng)化”啟動(dòng)的 Office 應(yīng)用程序的所 有實(shí)例都配置為以 “交互式” 用戶的身份運(yùn)行。 將“自動(dòng)化” 啟動(dòng)的 Office 應(yīng)用程序的所有實(shí)例都配置為以某個(gè)特定用 戶的身份運(yùn)行。 通過(guò)使用 MTS/COM+ 軟件包并允許 Office 應(yīng)用程序繼承啟動(dòng)該應(yīng)用程序的用戶的身份,將代碼配置為 以某個(gè)特定用戶的身份運(yùn)行。第一種方法可以使 Office 同 時(shí)獲得特定桌面的身份和可交互性,它是調(diào)試時(shí)的最佳選擇 (因?yàn)榭梢宰?Office 可見(jiàn),并且能夠讓本地登錄的用戶看 到和記錄任何對(duì)話框或 GPF 錯(cuò)誤)。為了

29、成功運(yùn)行, 這種方 法確實(shí)會(huì)要求交互式用戶保持登錄狀態(tài),所以,它可能不適 用于某些情況。有關(guān)更多信息,請(qǐng)參見(jiàn)下面的 Microsoft 知 識(shí)庫(kù)文章: 288366 如何將 Office 應(yīng)用程序配置為在交互式 用戶帳戶下運(yùn)行第二種方法會(huì)指定一個(gè)特定用戶,但不允許 交互性。 Office 會(huì)在一個(gè)不可見(jiàn)的桌面上的新 WinStation 中以被指定用戶的身份啟動(dòng)。這種方法需要進(jìn)行一些其他配 置,以確保加載用戶注冊(cè)表配置單元,因?yàn)樵谀J(rèn)情況下 COM/DCOM 不會(huì)做這一步。該設(shè)置對(duì)于系統(tǒng)來(lái)說(shuō)是全局性 的,所以它可能會(huì)與其他程序沖突。有關(guān)以這種方式配置 Office 的更多信息,請(qǐng)參見(jiàn)以下 Mi

30、crosoft 知識(shí)庫(kù)文章: 288367 如何將 Office 應(yīng)用程序配置為在特定用戶帳戶下 運(yùn)行第三種方法允許您為特定網(wǎng)站或代碼模塊指定一個(gè)身 份,避免為 Office 全局性地設(shè)置一個(gè)固定身份。只要以前 已經(jīng)為該計(jì)算機(jī)配置了該身份并且已經(jīng)加載了注冊(cè)表配置 單元, Office 就會(huì)以該身份運(yùn)行并正確加載。通常,這種方 法是最靈活、最可靠的,但是,像前一種方法一樣,這種方 法也不提供與某個(gè)可見(jiàn)桌面的交互性,而且它也需要額外進(jìn) 行一些設(shè)置。有關(guān)以這種方式配置 Office 的更多信息,請(qǐng) 參見(jiàn)以下 Microsoft 知識(shí)庫(kù)文章: 288368 如何將 Office 應(yīng) 用程序配置為從 COM+/MTS 包自動(dòng)運(yùn)行您需要評(píng)估上述 哪種方法適合您的需要,以及如何才能最好地部署您的解決 方案。此處提供的信息不保證能夠解決所有客戶端的所有問(wèn) 題。建議您最好在部署之前徹底地進(jìn)行測(cè)試。 回到頂端 | 提 供反饋參考有關(guān)服務(wù)器端“自動(dòng)化”的其他信息,請(qǐng)參見(jiàn)以 下 Microsoft 知識(shí)庫(kù)文章: 169321 INFO :COM 服務(wù)器激活 和 NT Windows 工作站回到頂端 | 提供反饋屬性文章編號(hào) : 257757 - 最后

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論