Condividi tramite


Configurare un'associazione client per l'adapter SQL

Dopo aver generato la classe client WCF, è possibile creare un client WCF (istanza) e richiamarne i metodi per utilizzare l'adapter Microsoft BizTalk per SQL Server. Per informazioni su come generare la classe client WCF e il codice helper per le operazioni esposte dall'adapter SQL, vedere Generare un client WCF o un contratto di servizio WCF per SQL Server Artifacts.

Per creare il client WCF, è necessario specificare un indirizzo endpoint e un'associazione. L'indirizzo dell'endpoint deve contenere un URI di connessione SQL valido e l'associazione deve essere un'istanza di un'associazione SQL (sqlBinding). Per altre informazioni sull'URI di connessione SQL, vedere Creare l'URI di connessione SQL Server. È necessario specificare le credenziali utente come parte dell'URI di connessione. È possibile utilizzare la proprietà ClientCredentials del client WCF, come illustrato in questo argomento.

È possibile specificare l'associazione SQL e l'indirizzo dell'endpoint nel codice o in un file di configurazione. Quando si usa il plug-in Add Adapter Service Reference di Visual Studio per generare la classe client WCF, viene creato anche un file di configurazione (app.config) per il progetto. Questo file contiene le impostazioni di configurazione che riflettono le proprietà di associazione e le informazioni di connessione (ad eccezione delle credenziali) specificate quando si è connessi al database SQL con il plug-in Aggiungi riferimento al servizio adapter.

Specifica dell'associazione e dell'indirizzo dell'endpoint nel codice

Il codice seguente illustra come creare un client WCF specificando l'associazione e l'indirizzo dell'endpoint nel codice usando la proprietà ClientCredentials del client WCF.

SqlAdapterBinding binding = new SqlAdapterBinding();  
EndpointAddress sqlAddress = new EndpointAddress("mssql://<sql_server_name>//<database_name>?");  
  
TableOp_dbo_CustomerClient client = new TableOp_dbo_CustomerClient (binding, sqlAddress);  
  
client.ClientCredentials.UserName.UserName = "USER";  
client.ClientCredentials.UserName.Password = "PASSWORD";  
  
client.Open();  

Specifica dell'associazione e dell'indirizzo dell'endpoint in un file di configurazione

Il codice seguente illustra come creare un client WCF specificando l'indirizzo dell'associazione e dell'endpoint in un file di app.config.

TableOp_dbo_CustomerClient client = new TableOp_dbo_CustomerClient("SqlAdapterBinding_TableOp_dbo_Customer");  
  
client.ClientCredentials.UserName.UserName = "USER";  
client.ClientCredentials.UserName.Password = "PASSWORD";  
  
client.Open();  

Il codice XML seguente mostra il file di configurazione creato per la tabella Customer dal plug-in Aggiungi riferimento al servizio adapter. Questo file contiene la configurazione dell'endpoint client a cui si fa riferimento nell'esempio precedente.

<?xml version="1.0" encoding="utf-8"?>  
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">  
    <system.serviceModel>  
        <bindings>  
            <sqlBinding>  
                <binding name="SqlAdapterBinding" closeTimeout="00:01:00" openTimeout="00:01:00"  
                    receiveTimeout="00:10:00" sendTimeout="00:01:00" maxConnectionPoolSize="100"  
                    encrypt="false" useAmbientTransaction="true" batchSize="20"  
                    polledDataAvailableStatement="" pollingStatement="" pollingIntervalInSeconds="30"  
                    pollWhileDataFound="false" notificationStatement="" notifyOnListenerStart="true"  
                    enableBizTalkCompatibilityMode="true" chunkSize="4194304"  
                    inboundOperationType="Polling" useDatabaseNameInXsdNamespace="false"  
                    allowIdentityInsert="false" enablePerformanceCounters="false"  
                    xmlStoredProcedureRootNodeName="" xmlStoredProcedureRootNodeNamespace="" />  
            </sqlBinding>  
        </bindings>  
        <client>  
            <endpoint address="mssql://<sql_server_name>//<database_name>?" binding="sqlBinding"  
                bindingConfiguration="SqlAdapterBinding" contract="TableOp_dbo_Customer"  
                name="SqlAdapterBinding_TableOp_dbo_Customer" />  
        </client>  
    </system.serviceModel>  
</configuration>  

Se un progetto ha più client WCF, nel file di configurazione saranno definite più voci di endpoint client. Ogni voce del client WCF avrà un nome univoco in base alla configurazione dell'associazione e alla destinazione SQL Server artefatto, ad esempio "SqlAdapterBinding_TableOp_dbo_Customer". Se ci si connette più volte per creare i client WCF nel progetto, verranno create più voci di configurazione dell'associazione, una per ogni connessione. Queste voci di configurazione dell'associazione verranno denominate nel modo seguente: SqlAdapterBinding, SqlAdapterBinding1 e così via. Ogni voce dell'endpoint client creata durante una connessione specifica farà riferimento alla voce di associazione creata durante tale connessione.

Vedere anche

Sviluppare applicazioni SQL usando il modello di servizio WCF
Generare un client WCF o un contratto di servizio WCF per elementi SQL Server
Creare l'URI di connessione SQL Server