Přehled integrace s aplikacemi modelu COM
Windows Communication Foundation (WCF) poskytuje vývojářům spravovaného kódu bohaté prostředí pro vytváření připojených aplikací. Pokud ale máte značné investice do nespravovaného kódu modelu COM a nechcete migrovat, můžete webové služby WCF integrovat přímo do stávajícího kódu pomocí monikeru služby WCF. Moniker služby lze použít z široké škály vývojových prostředí založených na modelu COM, jako je Office VBA, Visual Basic 6.0 nebo Visual C++ 6.0.
Poznámka:
Moniker služby používá komunikační kanál WCF pro veškerou komunikaci. Mechanismy zabezpečení a identit pro tento kanál se liší od mechanismů používaných ve standardních proxy serverech modelu COM a DCOM. Vzhledem k tomu, že moniker služby používá komunikační kanál WCF, výchozí časové období časového limitu je jedna minuta pro všechna volání.
Moniker služby se používá s GetObject
funkcí, která poskytuje nespravovanému vývojáři přístup specifický pro silné typy modelu COM pro volání webových služeb WCF. To vyžaduje místní definici modelu COM viditelné kontraktu webové služby WCF a vazbu, která se má použít. Stejně jako ostatní klienti WCF musí moniker služby vytvořit typový kanál do služby, ačkoli tato konstrukce kanálu se transparentně provádí programátor modelu COM při prvním volání metody.
U jiných klientů WCF při použití monikeru aplikace určují adresu, vazbu a kontrakt pro komunikaci se službou. Kontrakt lze zadat jedním z následujících způsobů:
Typový kontrakt – kontrakt je registrován jako viditelný typ modelu COM na klientském počítači.
Kontrakt WSDL – kontrakt je dodáván ve formě dokumentu WSDL.
Kontrakt MEX – kontrakt se načte za běhu z koncového bodu MeX (Metadata Exchange).
Parametry podporované monikerem služby
V následující tabulce jsou uvedeny parametry podporované monikerem služby.
Parametr | Popis |
---|---|
address |
Umístění adresy URL služby |
binding |
Název oddílu vazby z konfigurace aplikace |
bindingConfiguration |
Pojmenovaná instance vazby z oddílu pojmenované vazby. |
contract |
Identifikátor rozhraní (IID), který představuje kontrakt služby nebo název smlouvy (z MEX). |
wsdl |
Dokument WSDL, který poskytuje alternativní formu definice kontraktu. |
spnIdentity |
Identita hlavního názvu serveru (SPN), která se má použít ke komunikaci se službou. |
upnIdentity |
Identita hlavního názvu uživatele (UPN), která se má použít ke komunikaci se službou. |
dnsIdentity |
Identita DNS, která se má použít ke komunikaci se službou. |
mexAddress |
Umístění adresy URL koncového bodu serveru MEX (Metadata Exchange) služby |
mexBinding |
Název oddílu vazby z konfigurace aplikace pro připojení ke koncovému bodu MEX. |
mexBindingConfiguration |
Pojmenovaná instance vazby z oddílu pojmenované vazby pro připojení ke koncovému bodu MEX. |
bindingNamespace |
Obor názvů oddílu vazby z načteného souboru MEX |
contractNamespace |
Obor názvů kontraktu z načteného MEX. |
mexSpnIdentity |
Identita hlavního názvu serveru (SPN), která se má použít ke komunikaci s koncovým bodem MEX. |
mexUpnIdentity |
Identita hlavního názvu uživatele (UPN), která se má použít ke komunikaci s koncovým bodem MEX. |
mexDnsIdentity |
Identita DNS, která se má použít ke komunikaci s koncovým bodem MEX. |
serializer |
Zadejte použití serializátoru "xml" nebo "datacontract". |
Poznámka:
I když se používá s úplně klienty založenými na modelu COM, moniker služby vyžaduje WCF a podporu rozhraní .NET Framework 2.0, které se mají nainstalovat do klientského počítače. Je také důležité, aby klientské aplikace, které používají moniker služby, načetly odpovídající verzi modulu runtime rozhraní .NET Framework. Při použití monikeru v rámci aplikace Office lications může být vyžadován konfigurační soubor, aby se zajistilo, že je načtena správná verze architektury. Například v Excelu by měl být následující text umístěn do souboru s názvem Excel.exe.config ve stejném adresáři jako soubor Excel.exe:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns=
http://schemas.microsoft.com/.NetConfiguration/v2.0
>
<startup>
<requiredRuntime version="v2.0.50727" />
</startup>
</configuration>