Overzicht van integratie met COM-toepassingen
Windows Communication Foundation (WCF) biedt de ontwikkelaar van beheerde code een uitgebreide omgeving voor het maken van verbonden toepassingen. Als u echter een aanzienlijke investering hebt in onbeheerde COM-code en niet wilt migreren, kunt u WCF-webservices nog steeds rechtstreeks integreren in uw bestaande code met behulp van de WCF-service moniker. De service moniker kan worden gebruikt vanuit een breed scala aan COM-ontwikkelomgevingen, zoals Office VBA, Visual Basic 6.0 of Visual C++ 6.0.
Notitie
De service-moniker maakt gebruik van een WCF-communicatiekanaal voor alle communicatie. De beveiligings- en identiteitsmechanismen voor dat kanaal verschillen van die welke worden gebruikt in standaard COM- en DCOM-proxy's. Bovendien is de standaardtime-outperiode één minuut voor alle oproepen, omdat de service moniker gebruikmaakt van een WCF-communicatiekanaal.
De service moniker wordt gebruikt met de GetObject
functie om de onbeheerde ontwikkelaar een sterk getypeerde, COM-specifieke benadering te bieden voor het aanroepen van WCF-webservices. Hiervoor is een lokale, COM-zichtbare definitie van het WCF-webservicecontract en de binding vereist die moet worden gebruikt. Net als andere WCF-clients moet de service moniker een getypt kanaal bouwen aan de service, hoewel deze kanaalconstructie transparant plaatsvindt voor de COM-programmeur tijdens de eerste methode-aanroep.
In combinatie met andere WCF-clients, geven toepassingen bij gebruik van de moniker het adres, de binding en het contract op om te communiceren met een service. Het contract kan op een van de volgende manieren worden opgegeven:
Getypt contract : het contract is geregistreerd als een com-zichtbaar type op de clientcomputer.
WSDL-contract – het contract wordt verstrekt in de vorm van een WSDL-document.
MEX-contract: het contract wordt tijdens runtime opgehaald van een MEX-eindpunt (Metadata Exchange).
Parameters die worden ondersteund door de Service Moniker
In de volgende tabel ziet u de parameters die worden ondersteund door de service-moniker.
Parameter | Description |
---|---|
address |
URL-locatie van de service. |
binding |
Naam van de bindingssectie uit de toepassingsconfiguratie. |
bindingConfiguration |
Benoemd bindingexemplaren vanuit de benoemde bindingssectie. |
contract |
Interface-id (IID) die het servicecontract of de contractnaam (van MEX) vertegenwoordigt. |
wsdl |
WSDL-document dat een alternatieve vorm van contractdefinitie biedt. |
spnIdentity |
SpN-identiteit (Server Principal Name) die moet worden gebruikt om te communiceren met de service. |
upnIdentity |
UPN-identiteit (User Principal Name) die moet worden gebruikt om te communiceren met de service. |
dnsIdentity |
DNS-identiteit die moet worden gebruikt om te communiceren met de service. |
mexAddress |
URL-locatie van het MEX-eindpunt (Metadata Exchange) van de service. |
mexBinding |
Bindingsectienaam van de toepassingsconfiguratie om verbinding te maken met het MEX-eindpunt. |
mexBindingConfiguration |
Benoemd bindingexemplaren vanuit de sectie benoemde binding om verbinding te maken met het MEX-eindpunt. |
bindingNamespace |
Naamruimte van de bindingsectienaam van de opgehaalde MEX. |
contractNamespace |
Naamruimte van het contract van de opgehaalde MEX. |
mexSpnIdentity |
SpN-identiteit (Server Principal Name) die moet worden gebruikt om te communiceren met het MEX-eindpunt. |
mexUpnIdentity |
Upn-identiteit (User Principal Name) die moet worden gebruikt om te communiceren met het MEX-eindpunt. |
mexDnsIdentity |
DNS-identiteit die moet worden gebruikt om te communiceren met het MEX-eindpunt. |
serializer |
Geef het gebruik van de serializer 'xml' of 'datacontract' op. |
Notitie
Zelfs wanneer deze wordt gebruikt met volledig com-clients, vereist de service moniker WCF en het ondersteunende .NET Framework 2.0 op de clientcomputer te installeren. Het is ook essentieel dat clienttoepassingen die gebruikmaken van de service moniker, de juiste versie van de .NET Framework-runtime laden. Wanneer u de moniker binnen Office-app lications gebruikt, is mogelijk een configuratiebestand vereist om ervoor te zorgen dat de juiste frameworkversie wordt geladen. In Excel moet de volgende tekst bijvoorbeeld worden geplaatst in een bestand met de naam Excel.exe.config in dezelfde map als het Excel.exe bestand:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns=
http://schemas.microsoft.com/.NetConfiguration/v2.0
>
<startup>
<requiredRuntime version="v2.0.50727" />
</startup>
</configuration>