Panoramica sull'integrazione con applicazioni COM
Windows Communication Foundation (WCF) fornisce allo sviluppatore di codice gestito un ambiente completo per la creazione di applicazioni connesse. Se tuttavia si dispone di una grande quantità di codice non gestito basato su COM e non si desidera eseguirne la migrazione, è comunque possibile integrare i servizi Web WCF direttamente nel codice esistente utilizzando il moniker del servizio WCF. Il moniker del servizio può essere utilizzato in un'ampia gamma di ambienti di sviluppo basati su COM, ad esempio Office VBA, Visual Basic 6.0 o Visual C++ 6.0.
Nota
Il moniker del servizio utilizza un canale di comunicazione WCF per tutte le comunicazioni. I meccanismi di protezione e identità per tale canale differiscono da quelli utilizzati nei proxy COM e DCOM standard. Inoltre, poiché il moniker del servizio utilizza un canale di comunicazione WCF, il periodo di timeout predefinito è di un minuto per tutte le chiamate.
Il moniker del servizio viene utilizzato con la funzione GetObject per fornire allo sviluppatore di codice non gestito un approccio specifico COM fortemente tipizzato per chiamare i servizi Web WCF. A tale scopo è necessaria una definizione locale visibile a COM del contratto del servizio Web WCF e dell'associazione da utilizzare. Come altri client WCF, il moniker del servizio deve costruire un canale tipizzato per il servizio, anche se la costruzione di tale canale avviene in modo trasparente per il programmatore COM alla prima chiamata al metodo.
In comune con altri client WCF, quando si utilizza il moniker, le applicazioni specificano l'indirizzo, l'associazione e il contratto per comunicare con un servizio. Il contratto può essere specificato in uno dei modi seguenti:
- Contratto tipizzato: il contratto viene registrato come tipo visibile a COM sul computer client.
- Contratto WSDL: il contratto viene fornito sotto forma di documento WSDL.
- Contratto MEX: il contratto viene recuperato in fase di esecuzione da un endpoint MEX (Metadata Exchange).
Parametri supportati dal moniker del servizio
Nella tabella seguente vengono illustrati i parametri supportati dal moniker del servizio.
Parametro | Descrizione |
---|---|
address |
Percorso URL del servizio. |
binding |
Nome della sezione dell'associazione ottenuto dalla configurazione dell'applicazione. |
bindingConfiguration |
Istanza dell'associazione non anonima ottenuta dall'interno la sezione dell'associazione non anonima. |
contract |
Identificatore di interfaccia (IID) che rappresenta il contratto del servizio o il nome del contratto (ottenuto da MEX). |
wsdl |
Documento WSDL che fornisce un tipo alternativo di definizione del contratto. |
spnIdentity |
Identità del nome principale del server (SPN) da utilizzare per comunicare con il servizio. |
upnIdentity |
Identità del nome di entità utente (UPN) da utilizzare per comunicare con il servizio. |
dnsIdentity |
Identità DNS da utilizzare per comunicare con il servizio. |
mexAddress |
Percorso URL dell'endpoint MEX (Metadata Exchange) del servizio. |
mexBinding |
Nome della sezione dell'associazione ottenuto dalla configurazione dell'applicazione da connettere con l'endpoint MEX. |
mexBindingConfiguration |
Istanza dell'associazione non anonima ottenuta dall'interno della sezione dell'associazione non anonima da connettere con l'endpoint MEX. |
bindingNamespace |
Spazio dei nomi del nome della sezione dell'associazione ottenuto dal MEX recuperato. |
contractNamespace |
Spazio dei nomi del contratto ottenuto dal MEX recuperato. |
mexSpnIdentity |
Identità del nome principale del server (SPN) da utilizzare per comunicare con l'endpoint MEX. |
mexUpnIdentity |
Identità del nome dell'entità utente (UPN) da utilizzare per comunicare con l'endpoint MEX. |
mexDnsIdentity |
Identità DNS da utilizzare per comunicare con l'endpoint MEX. |
serializer |
Consente di specificare l'utilizzo del serializzatore "xml" o "datacontract." |
Nota
Anche quando il moniker del servizio viene utilizzato con client interamente basati su COM, è necessario che nel computer client siano installati WCF e .NET Framework 2.0. È inoltre fondamentale che le applicazioni client che utilizzano il moniker del servizio carichino la versione appropriata del runtime .NET Framework. Quando il moniker viene utilizzato all'interno di applicazioni Office, può essere necessario un file di configurazione per garantire il caricamento della versione corretta del framework. Ad esempio, con Excel, è consigliabile inserire il testo seguente in un file denominato Excel.exe.config nella stessa directory del file Excel.exe:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns=
https://schemas.microsoft.com/.NetConfiguration/v2.0
>
<startup>
<requiredRuntime version="v2.0.50727" />
</startup>
</configuration>