Przegląd integrowania z aplikacjami modelu COM
Program Windows Communication Foundation (WCF) udostępnia deweloperowi kodu zarządzanego rozbudowane środowisko do tworzenia połączonych aplikacji. Jeśli jednak masz znaczną inwestycję w niezarządzany kod oparty na modelu COM i nie chcesz migrować, nadal możesz zintegrować usługi sieci Web WCF bezpośrednio z istniejącym kodem przy użyciu nazwy moniker usługi WCF. Moniker usługi może być używany z szerokiej gamy środowisk programistycznych opartych na modelu COM, takich jak Office VBA, Visual Basic 6.0 lub Visual C++ 6.0.
Uwaga
Pseudonim usługi używa kanału komunikacyjnego WCF dla całej komunikacji. Mechanizmy zabezpieczeń i tożsamości dla tego kanału różnią się od tych używanych w standardowych serwerach proxy COM i DCOM. Ponadto, ponieważ moniker usługi używa kanału komunikacyjnego WCF, domyślny okres limitu czasu jest minutą dla wszystkich wywołań.
Moniker usługi jest używany z funkcją GetObject
w celu zapewnienia niezarządzanego dewelopera z silnie typizowanego, specyficznego dla modelu COM podejścia do wywoływania usług internetowych WCF. Wymaga to lokalnej, widocznej w modelu COM definicji kontraktu usługi sieci Web WCF i powiązania, które ma być używane. Podobnie jak inni klienci WCF, moniker usługi musi skonstruować typowany kanał do usługi, choć ta konstrukcja kanału odbywa się w sposób niewidoczny dla programisty COM przy pierwszym wywołaniu metody.
W przypadku innych klientów programu WCF podczas korzystania z nazwy moniker aplikacje określają adres, powiązanie i kontrakt do komunikowania się z usługą. Kontrakt można określić na jeden z następujących sposobów:
Kontrakt wpisany — kontrakt jest rejestrowany jako typ widoczny com na maszynie klienckiej.
Kontrakt WSDL — kontrakt jest dostarczany w postaci dokumentu WSDL.
Kontrakt MEX — kontrakt jest pobierany w czasie wykonywania z punktu końcowego programu Metadata Exchange (MEX).
Parametry obsługiwane przez moniker usługi
W poniższej tabeli przedstawiono parametry obsługiwane przez moniker usługi.
Parametr | Opis |
---|---|
address |
Lokalizacja adresu URL usługi. |
binding |
Nazwa sekcji powiązania z konfiguracji aplikacji. |
bindingConfiguration |
Nazwane wystąpienie powiązania z sekcji nazwanego powiązania. |
contract |
Identyfikator interfejsu (IID), który reprezentuje kontrakt usługi lub nazwę kontraktu (od MEX). |
wsdl |
Dokument WSDL, który zawiera alternatywną formę definicji kontraktu. |
spnIdentity |
Tożsamość głównej nazwy serwera (SPN) do komunikowania się z usługą. |
upnIdentity |
Tożsamość głównej nazwy użytkownika (UPN) do komunikowania się z usługą. |
dnsIdentity |
Tożsamość DNS, która ma być używana do komunikowania się z usługą. |
mexAddress |
Lokalizacja adresu URL punktu końcowego programu Metadata Exchange (MEX) usługi. |
mexBinding |
Nazwa sekcji powiązania z konfiguracji aplikacji w celu nawiązania połączenia z punktem końcowym MEX. |
mexBindingConfiguration |
Nazwane wystąpienie powiązania z sekcji nazwanego powiązania w celu nawiązania połączenia z punktem końcowym MEX. |
bindingNamespace |
Przestrzeń nazw sekcji powiązania z pobranego pliku MEX. |
contractNamespace |
Przestrzeń nazw kontraktu z pobranego pliku MEX. |
mexSpnIdentity |
Tożsamość głównej nazwy serwera (SPN) do komunikowania się z punktem końcowym MEX. |
mexUpnIdentity |
Tożsamość głównej nazwy użytkownika (UPN) do komunikowania się z punktem końcowym MEX. |
mexDnsIdentity |
Tożsamość DNS, która ma być używana do komunikowania się z punktem końcowym MEX. |
serializer |
Określ użycie serializatora "xml" lub "datacontract". |
Uwaga
Nawet jeśli jest używany z całkowicie klientami opartymi na modelu COM, moniker usługi wymaga programu WCF i pomocniczego programu .NET Framework 2.0 do zainstalowania na komputerze klienckim. Ważne jest również, aby aplikacje klienckie korzystające z moniker usługi ładowały odpowiednią wersję środowiska uruchomieniowego programu .NET Framework. W przypadku używania monikera w ramach aplikacja pakietu Office lications może być wymagany plik konfiguracji, aby upewnić się, że załadowana jest poprawna wersja platformy. Na przykład w programie Excel następujący tekst powinien zostać umieszczony w pliku o nazwie Excel.exe.config w tym samym katalogu co plik Excel.exe:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns=
http://schemas.microsoft.com/.NetConfiguration/v2.0
>
<startup>
<requiredRuntime version="v2.0.50727" />
</startup>
</configuration>