共用方式為


整合 COM 應用程式概觀

Windows Communication Foundation (WCF) 為受控程式碼開發人員提供一個資源豐富的作業環境,讓他們可以建立相關應用程式。 不過,如果您對非受控 COM 架構程式碼已經做大筆投資,而且不想進行移轉,則仍舊可以使用 WCF 服務 Moniker 將 WCF Web 服務直接移轉至現有的程式碼。 服務 Moniker 可以從多種 COM 架構開發環境中使用,例如 Office VBA、Visual Basic 6.0 或 Visual C++ 6.0。

注意

服務 Moniker 會在所有的通訊中使用 WCF 通訊通道。 該通道的安全性和識別機制不同於標準 COM 和 DCOM Proxy 所使用的機制。 此外,服務 Moniker 會使用 WCF 通訊通道,所以任何呼叫的預設逾時期間都是一分鐘。

服務 Moniker 會搭配 GetObject 函式使用,提供非受控開發人員強型別且專屬於 COM 的方法來呼叫 WCF Web 服務。 這個動作需要有 WCF Web 服務合約的本地 COM 可見定義,以及要使用的繫結。 正如其他 WCF 用戶端一樣,雖然在第一次呼叫方法時,COM 程式設計人員看得見這個通道建構過程,但服務 Moniker 仍必須建構服務的型別通道。

與其他 WCF 用戶端共通的是,當使用 Moniker 時,應用程式會將位址、繫結及合約指定為與服務通訊。 可以使用下列其中一種方法指定合約:

  • 型別合約:合約會在用戶端電腦上註冊為 COM 可見型別。

  • WSDL 合約:合約會以 WSDL 文件的形式提供。

  • MEX 合約:合約會在執行階段從中繼資料交換 Metadata Exchange (MEX) 端點擷取。

服務 Moniker 支援的參數

下表顯示服務 Moniker 所支援的參數。

參數 描述
address 服務的 URL 位置。
binding 應用程式組態中的繫結區段名稱。
bindingConfiguration 具名繫結區段中的具名繫結執行個體。
contract 介面識別項 (IID),表示服務合約或合約名稱 (來自 MEX)。
wsdl WSDL 文件,提供其他形式的合約定義。
spnIdentity 伺服器主要名稱 (SPN) 身分識別,用於與服務進行通訊。
upnIdentity 使用者主要名稱 (UPN) 身分識別,用於與服務進行通訊。
dnsIdentity DNS 身分識別,用於與服務進行通訊。
mexAddress 服務中繼資料交換 (MEX) 端點的 URL 位置。
mexBinding 要連接 MEX 端點之應用程式組態中的繫結區段名稱。
mexBindingConfiguration 要連接 MEX 端點之具名繫結區段中的具名繫結執行個體。
bindingNamespace 在擷取的 MEX 中,繫結區段名稱的命名空間。
contractNamespace 在擷取的 MEX 中,合約的命名空間。
mexSpnIdentity 伺服器主要名稱 (SPN) 身分識別,用於與 MEX 端點進行通訊。
mexUpnIdentity 使用者主要名稱 (UPN) 身分識別,用於與 MEX 端點進行通訊。
mexDnsIdentity DNS 身分識別,用於與 MEX 端點進行通訊。
serializer 指定要使用 "xml" 或 "datacontract" 序列化程式。

注意

即使搭配整個 COM 型用戶端使用,服務 Moniker 仍需要用戶端電腦上安裝 WCF 和支援的 .NET Framework 2.0。 此外,使用服務 Moniker 的用戶端應用程式也一定要載入適當版本的 .NET Framework 執行階段。 在 Office 應用程式中使用 Moniker 時,可能需要有組態檔來確認是否載入了正確的 Framework 版本。 例如,在 Excel 中應將下列文字放入與 Excel.exe 檔案位在相同的目錄下,而且名為 Excel.exe.config 的檔案中:

<?xml version="1.0" encoding="utf-8"?>

<configuration xmlns= http://schemas.microsoft.com/.NetConfiguration/v2.0 >

<startup>

<requiredRuntime version="v2.0.50727" />

</startup>

</configuration>

另請參閱