Freigeben über


Integration mit COM-Anwendungen – Übersicht

Windows Communication Foundation (WCF) bietet dem Entwickler von verwaltetem Code eine umfassende Umgebung zum Erstellen verbundener Anwendungen. Wenn Sie jedoch eine erhebliche Investition in nicht verwalteten COM-basierten Code haben und nicht migrieren möchten, können Sie WCF-Webdienste weiterhin direkt in Ihren vorhandenen Code integrieren, indem Sie den WCF-Dienst moniker verwenden. Der Dienstmoniker kann aus einer vielzahl von 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 Kanal unterscheiden sich von denen, die in standardmäßigen COM- und DCOM-Proxys verwendet werden. 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 verwendet, um dem nicht verwalteten Entwickler einen stark typierten, COM-spezifischen Ansatz zum Aufrufen von WCF-Webdiensten bereitzustellen. Dies erfordert eine lokale, COM-sichtbare Definition des WCF-Webdienstvertrags und die Bindung, die verwendet werden soll. Wie andere WCF-Clients muss der Dienstmoniker einen typisierten Kanal für den Dienst erstellen, wobei dieser Kanalaufbau für den COM-Programmierer beim ersten Methodenaufruf transparent 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 auf eine der folgenden Arten angegeben werden:

  • Typierter Vertrag – der Vertrag wird als COM-sichtbarer Typ auf dem Clientcomputer registriert.

  • WSDL-Vertrag – der Vertrag wird in Form eines WSDL-Dokuments geliefert.

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

Vom Dienst Moniker unterstützte Parameter

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

Parameter BESCHREIBUNG
address URL-Speicherort des Diensts.
binding Name des Bindungsabschnitts aus der Anwendungskonfiguration.
bindingConfiguration Benannte Bindungsinstanz innerhalb des benannten Bindungsabschnitts.
contract Schnittstellenbezeichner (IID), der den Servicevertrag oder den Vertragsnamen (von MEX) darstellt.
wsdl WSDL-Dokument, das eine alternative Form der Vertragsdefinition bereitstellt.
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 für die Kommunikation mit dem Dienst verwendet werden soll.
mexAddress URL-Speicherort des Metadatenaustauschendpunkts (Metadata Exchange, MEX) des Diensts.
mexBinding Name des Bindungsabschnitts aus der Anwendungskonfiguration, um eine Verbindung mit dem MEX-Endpunkt herzustellen.
mexBindingConfiguration Benannte Bindungsinstanz innerhalb des benannten Bindungsbereichs, um eine Verbindung mit dem MEX-Endpunkt herzustellen.
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 die Verwendung des Serializers "xml" oder "datacontract" an.

Hinweis

Auch wenn er mit vollständig COM-basierten Clients verwendet wird, erfordert der Dienstmoniker, dass WCF und das unterstützende .NET Framework 2.0 auf dem Clientcomputer installiert sind. Es ist auch wichtig, dass Clientanwendungen, die den Dienstmoniker verwenden, die entsprechende Version der .NET Framework-Laufzeit laden. Wenn Sie den Moniker in Office-Anwendungen verwenden, ist möglicherweise eine Konfigurationsdatei erforderlich, um sicherzustellen, dass die richtige Frameworkversion geladen wird. Bei Excel sollte beispielsweise der folgende Text in einer Datei mit dem Namen Excel.exe.config im selben Verzeichnis wie die Excel.exe-Datei platziert werden:

<?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