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>