Condividi tramite


Uso dello strumento Utilità metadati ServiceModel con l'adapter BizTalk per Oracle Database

È possibile utilizzare lo strumento utilità metadati ServiceModel (svcutil.exe) per generare una classe client WCF o un contratto di servizio WCF (interfaccia) per le operazioni esposte dall'adapter Microsoft BizTalk per Oracle Database. Dopo aver eseguito svcutil.exe per generare una classe client WCF o un contratto di servizio WCF, è possibile includere il file generato nel codice e creare istanze della classe generata o implementare un servizio WCF dal contratto per eseguire operazioni sul database Oracle.

Per usare svcutil.exe è necessario specificare un URI di connessione contenente le credenziali. Poiché, per impostazione predefinita, l'adattatore Oracle Database disabilita le credenziali nell'URI di connessione, è necessario configurare svcutil.exe per usare un'associazione non predefinita per l'adapter Oracle Database.

Le sezioni seguenti illustrano come configurare svcutil.exe e come usare svcutil.exe per generare codice client WCF o un contratto di servizio WCF con l'adapter Oracle Database.

Configurare svcutil.exe per un'associazione non predefinita

Per configurare svcutil.exe per l'uso di un'associazione non predefinita, è necessario creare una copia locale di svcutil.exe e quindi creare o modificare una copia locale del file di configurazione svcutil.exe.config.

  1. Creare una cartella e copiare svcutil.exe nella nuova cartella. In genere è possibile trovare svcutil.exe nel percorso di installazione di Windows SDK, in particolare C:\Programmi\Microsoft SDKs\Windows\v6.0\Bin.

  2. Creare un file denominato svcutil.exe.config nella nuova cartella.

  3. Aggiungere un'associazione e un endpoint client al file svcutil.exe.config. È necessario eseguire svcutil.exe dalla nuova cartella per assicurarsi che venga usata la configurazione corretta.

    Importante

    L'attributo name dell'endpoint client deve specificare lo schema usato nell'URI di connessione. Per questo valore viene applicata la distinzione tra maiuscole e minuscole.

    <configuration>
      <system.serviceModel>
        <client>
          <!-- the name should match the required scheme of the WS-Metadata Exchange endpoint
          and the contract should be "IMetadataExchange" -->
          <endpoint name="oracledb"
                    binding="oracleDBBinding"
                    bindingConfiguration="OracleDBBinding"
                    contract="IMetadataExchange" />
        </client>
        <bindings>
            <oracleDBBinding>
                <binding name="OracleDBBinding" acceptCredentialsInUri="true" />
            </oracleDBBinding>
        </bindings>
    
      </system.serviceModel>
    
    </configuration>
    

Nota

È possibile impostare una delle proprietà di associazione dell'adapter Oracle Database nella configurazione dell'associazione.

Per altre informazioni sulla configurazione di un'associazione non predefinita per svcutil.exe, vedere l'argomento "Endpoint metadati sicuri personalizzati" nella documentazione di WCF all'indirizzo https://go.microsoft.com/fwlink/?LinkId=96077.

Configurare un'associazione non predefinita per l'operazione POLLINGSTMT

Per utilizzare svcutil.exe per creare un contratto di servizio WCF per l'operazione POLLINGSTMT, è necessario configurare l'associazione non predefinita per includere la proprietà pollingStatement , oltre a acceptCredentialsInUri. PollingStatement deve contenere l'istruzione SELECT destinata alla tabella. L'adapter Oracle Database utilizza questa proprietà per generare la classe che rappresenta il set di risultati fortemente tipizzato restituito dall'operazione POLLINGSTMT. Nell'esempio seguente viene illustrata una configurazione di associazione utilizzata per generare un contratto di servizio WCF per un'operazione POLLINGSTMT destinata alla tabella /SCOTT/EMP.

<bindings>
    <oracleDBBinding>
        <binding name="OracleDBBinding" acceptCredentialsInUri="true"
                                   pollingStatement="SELECT * FROM EMP FOR UPDATE" />
    </oracleDBBinding>
</bindings>

Creare una classe client WCF o un contratto di servizio WCF con svcutil.exe

Per utilizzare svcutil.exe per generare codice client WCF o un contratto di servizio WCF (interfaccia) per l'adapter Oracle Database, è necessario specificare un URI di connessione che specifica un endpoint di WS-Metadata Exchange (MEX) e l'operazione o le operazioni per cui si desidera svcutil.exe generare codice. È inoltre necessario specificare le credenziali di connessione per il database Oracle nell'URI di connessione.

Nota

Prima di poter usare svcutil.exe con l'adattatore Oracle Database, è necessario configurarlo per l'uso di un'associazione non predefinita; per informazioni su come eseguire questa operazione, vedere Configuring svcutil.exe for the Oracle Database Adapter.For information about how to do this, see Configuring svcutil.exe for the Oracle Database Adapter.

Specificare un endpoint MEX e le operazioni di destinazione nell'URI di connessione della scheda di database Oracle nel modo seguente:

  • È necessario includere il parametro "wsdl" nel query_string. Se è il primo parametro nella query_string, viene specificato subito dopo il punto interrogativo (?). Se non è il primo parametro, deve essere preceduto da una e commerciale (&).

  • È necessario seguire il parametro "wsdl" in base a uno o più parametri "op". Ogni parametro "op" è preceduto da una e commerciale (&) e specifica l'ID nodo di un'operazione di destinazione.

    I tre esempi seguenti illustrano come impostare come destinazione varie operazioni usando svcutil.exe.

    In questo esempio viene creata una classe client WCF per un'operazione di inserimento nella tabella /SCOTT/EMP.

    .\svcutil "oracledb://User=SCOTT; Password=TIGER@ADAPTER?wsdl&op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert"

    In questo esempio viene creata una classe client WCF per le operazioni Insert e Delete nella tabella /SCOTT/EMP.

    .\svcutil "oracledb://User=SCOTT; Password=TIGER@ADAPTER?wsdl&op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert& op=http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Delete"

    In questo esempio viene creato un contratto di servizio WCF per l'operazione POLLLINGSTMT. Per utilizzare svcutil.exe per generare un contratto di servizio WCF per l'operazione POLLINGSTMT, è necessario configurare un'associazione non predefinita per svcutil.exe che include un'istruzione di polling.

    .\svcutil "oracledb://User=SCOTT; Password=TIGER@ADAPTER?wsdl&op=http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMT"

Importante

È necessario inserire l'URI di connessione tra virgolette nella riga di comando. In caso contrario, svcutil.exe tenta di recuperare i metadati per le operazioni non supportate dall'adapter Oracle Database. I risultati di un tentativo di questo tipo non sono definiti.

Per impostazione predefinita, svcutil.exe inserisce il codice generato nel file output.cs; È tuttavia possibile modificare il nome del file di output e molte altre opzioni usate svcutil.exe impostando le opzioni della riga di comando. Per altre informazioni sulle opzioni supportate da svcutil.exe, vedere l'argomento "ServiceModel Metadata Utility Tool (Svcutil.exe)" nella documentazione di WCF all'indirizzo https://go.microsoft.com/fwlink/?LinkId=72777.

Svcutil.exe non offre la possibilità di cercare le operazioni, ad esempio usando caratteri jolly. È necessario specificare in modo esplicito gli ID nodo per le operazioni specifiche di destinazione. Non è possibile specificare GLI ID nodo che fanno riferimento solo alle categorie. Per altre informazioni sugli ID nodo esposti dall'adattatore Oracle Database, vedere ID dei nodi dei metadati.

Il plug-in Aggiungi riferimento al servizio adapter di Visual Studio offre funzionalità avanzate di ricerca e esplorazione che possono semplificare notevolmente la generazione di una classe client WCF e di un contratto di servizio WCF. Per altre informazioni sul plug-in Di riferimento del servizio adapter, vedere Generazione di un client WCF o di un contratto di servizio WCF per gli artefatti della soluzione Oracle Database.

Vedere anche

Messaggi e schemi di messaggio per l'adapter BizTalk per database Oracle