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