Freigeben über


Übersicht über die Integration von COM-Anwendungen

Windows Communication Foundation (WCF) bietet Entwickler*innen von verwaltetem Code eine funktionsreiche Umgebung zum Erstellen von verbundenen Anwendungen. Wenn Sie jedoch größere Investitionen in nicht verwalteten, COM-basierten Code getätigt haben und nicht migrieren möchten, können Sie WCF-Webdienste mithilfe des WCF-Dienstmonikers direkt in Ihren vorhandenen Code integrieren. Der Dienstmoniker kann in vielen verschiedenen COM-basierten Entwicklungsumgebungen wie Office VBA, Visual Basic 6.0 oder Visual C++ 6.0 verwendet werden.

Hinweis

Der Dienstmoniker verwendet einen WCF-Kommunikationschannel für die gesamte Kommunikation. Die Sicherheits- und Identitätsmechanismen für diesen Channel unterscheiden sich von den Mechanismen in COM- und DCOM-Standardproxys. Da der Dienstmoniker darüber hinaus einen WCF-Kommunikationschannel verwendet, beträgt die Standardtimeoutdauer für alle Aufrufe eine Minute.

Der Dienstmoniker wird mit der GetObject-Funktion dazu verwendet, Entwickler*innen von nicht verwaltetem Code einen stark typisierten, COM-spezifischen Ansatz zum Aufrufen von WCF-Webdiensten zur Verfügung zu stellen. Dies erfordert eine lokale, für COM sichtbare Definition des WCF-Webdienstvertrags und der zu verwendenden Bindung. Ebenso wie andere WCF-Clients muss der Dienstmoniker einen typisierten Kanal für den Dienst erstellen, obwohl diese Kanalerstellung für COM-Programmierer*innen transparent beim ersten Methodenaufruf erfolgt.

Bei der Verwendung des Monikers geben Anwendungen ebenso wie andere WCF-Clients die Adresse, die Bindung und den Vertrag für die Kommunikation mit einem Dienst an. Der Vertrag kann mithilfe der folgenden Methoden spezifiziert werden:

  • Typisierter Vertrag: Der Vertrag wird auf dem Clientcomputer als für COM sichtbarer Typ registriert.

  • WSDL-Vertrag: Der Vertrag wird in Form eines WSDL-Dokuments angegeben.

  • MEX-Vertrag: Der Vertrag wird zur Laufzeit von einem MEX (Metadata Exchange)-Endpunkt abgerufen.

Vom Dienstmoniker unterstützte Parameter

In der folgenden Tabelle werden die Parameter aufgeführt, die vom Dienstmoniker unterstützt werden.

Parameter Beschreibung
address URL-Adresse des Diensts.
binding Bindungsabschnittsname für die Anwendungskonfiguration.
bindingConfiguration Benannte Bindungsinstanz innerhalb des benannten Bindungsabschnitts.
contract Schnittstellenbezeichner (Interface identifier, IID), der den Dienstvertrag oder den Vertragsnamen (von MEX) darstellt.
wsdl WSDL-Dokument, das eine alternative Form der Vertragsdefinition enthält.
spnIdentity SPN (Server Principal Name)-Identität, die zur Kommunikation mit dem Dienst verwendet werden soll.
upnIdentity UPN (User Principal Name)-Identität, die zur Kommunikation mit dem Dienst verwendet werden soll.
dnsIdentity DNS-Identität, die zur Kommunikation mit dem Dienst verwendet werden soll.
mexAddress URL-Adresse des MEX-Endpunkts (Metadata Exchange) des Diensts.
mexBinding Bindungsabschnittsname für die Anwendungskonfiguration zur Verbindung mit dem MEX-Endpunkt.
mexBindingConfiguration Benannte Bindungsinstanz innerhalb des benannten Bindungsabschnitts zur Verbindung mit dem MEX-Endpunkt.
bindingNamespace Namespace des Bindungsabschnittsnamens für den abgerufenen MEX.
contractNamespace Namespace des Vertrags für den abgerufenen MEX.
mexSpnIdentity SPN (Server Principal Name)-Identität, die für die Kommunikation mit dem MEX-Endpunkt verwendet werden soll.
mexUpnIdentity UPN (User Principal Name)-Identität, die für die Kommunikation mit dem MEX-Endpunkt verwendet werden soll.
mexDnsIdentity DNS-Identität, die für die Kommunikation mit dem MEX-Endpunkt verwendet werden soll.
serializer Geben Sie entweder die Verwendung des "XML"- oder des "datacontract"-Serialisierungsprogramms an.

Hinweis

Auch bei Verwendung mit vollständig COM-basierten Clients erfordert der Dienstmoniker, dass WCF und .NET Framework 2.0 auf dem Clientcomputer installiert sind. Außerdem müssen Clientanwendungen, die den Dienstmoniker verwenden, die entsprechende Version der .NET Framework-Laufzeit laden. Bei Verwendung des Monikers innerhalb von Office-Anwendungen ist möglicherweise eine Konfigurationsdatei erforderlich, um sicherzustellen, dass die richtige Framework-Version geladen ist. In Excel muss beispielsweise der folgende Text in einer Datei mit dem Namen Excel.exe.config in dasselbe Verzeichnis abgelegt werden wie die Excel.exe-Datei:

<?xml version="1.0" encoding="utf-8"?>

<configuration xmlns= http://schemas.microsoft.com/.NetConfiguration/v2.0 >

<startup>

<requiredRuntime version="v2.0.50727" />

</startup>

</configuration>

Siehe auch