Delen via


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>

Zie ook