共用方式為


與 COM 應用程式整合概觀

Windows Communication Foundation (WCF)為管理代碼開發人員提供豐富的環境,用於創建互聯的應用程式。 不過,如果您對非受控 COM 型程式代碼進行大量投資,而且不想移轉,您仍然可以使用 WCF 服務 Moniker 將 WCF Web 服務直接整合到現有的程式代碼中。 服務標記可以從各種 COM 型開發環境中使用,例如 Office VBA、Visual Basic 6.0 或 Visual C++ 6.0。

備註

服務識別符會針對所有通信使用WCF通道。 該通道的安全性和身分識別機制與標準 COM 和 DCOM Proxy 中使用的機制不同。 此外,因為服務Moniker會使用WCF通道,因此所有呼叫的預設逾時期間都是一分鐘。

服務名稱會與函式搭配 GetObject 使用,為非管理式開發人員提供 COM 特定的強型別方法來呼叫 WCF 網頁服務。 這需要 WCF Web 服務合約的本機 COM 可見定義,以及要使用的系結。 與其他 WCF 用戶端一樣,服務標示必須建構服務的具型別通道,不過這個通道建構對 COM 程式設計人員來說是透明的,並於第一次方法呼叫時發生。

與其他 WCF 用戶端一般,使用 Moniker 時,應用程式會指定位址、系結和合約來與服務通訊。 合約可以透過下列其中一種方式來指定:

  • 具類型的合約 – 合約會在用戶端電腦上註冊為 COM 可見類型。

  • WSDL 合約 – 合約是以 WSDL 檔的形式提供。

  • MEX 合約 – 合約會在運行時間從元數據交換 (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 要用來與 MEX 端點通訊的伺服器主體名稱 (SPN) 身分識別。
mexUpnIdentity 用戶主體名稱 (UPN) 身分識別將用於與 MEX 端點通訊。
mexDnsIdentity 用於與 MEX 端點通訊的 DNS 識別。
serializer 指定使用「xml」或「datacontract」序列化器。

備註

即使與完全以 COM 為基礎的用戶端搭配使用,服務(Service Moniker)必須在用戶端電腦上安裝 WCF 和支援的 .NET Framework 2.0。 使用服務 Moniker 的用戶端應用程式也務必載入適當的 .NET Framework 運行時間版本。 在 Office 應用程式中使用 Moniker 時,可能需要設定檔以確保載入正確的架構版本。 例如,使用 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>

另請參閱