Condividi tramite


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>

Vedere anche

Attività

Procedura: registrare e configurare un moniker servizio