Freigeben über


Konfigurieren einer Clientbindung für den SQL-Adapter

Nachdem Sie die WCF-Clientklasse generiert haben, können Sie einen WCF-Client (Instanz) erstellen und dessen Methoden aufrufen, um den Microsoft BizTalk-Adapter für SQL Server zu nutzen. Informationen zum Generieren der WCF-Clientklasse und des Hilfscodes für Vorgänge, die der SQL-Adapter verfügbar macht, finden Sie unter Generieren eines WCF-Client- oder WCF-Dienstvertrags für SQL Server-Artefakte.

Zum Erstellen des WCF-Clients müssen Sie eine Endpunktadresse und eine Bindung angeben. Die Endpunktadresse muss einen gültigen SQL-Verbindungs-URI enthalten, und die Bindung muss eine Instanz einer SQL-Bindung (sqlBinding) sein. Weitere Informationen zum SQL-Verbindungs-URI finden Sie unter Erstellen des SQL Server-Verbindungs-URI. Sie müssen die Benutzeranmeldeinformationen als Teil des Verbindungs-URI angeben. Sie können die ClientCredentials-Eigenschaft des WCF-Clients verwenden, wie in diesem Thema erläutert.

Sie können die SQL-Bindung und die Endpunktadresse in Ihrem Code oder in einer Konfigurationsdatei angeben. Wenn Sie das Add Adapter Service Reference Visual Studio Plug-In verwenden, um die WCF-Clientklasse zu generieren, wird auch eine Konfigurationsdatei (app.config) für Ihr Projekt erstellt. Diese Datei enthält Konfigurationseinstellungen, die die Bindungseigenschaften und Verbindungsinformationen (mit Ausnahme von Anmeldeinformationen) widerspiegeln, die Sie beim Herstellen einer Verbindung mit der SQL-Datenbank mit dem Add Adapter Service Reference Plug-In angegeben haben.

Angeben der Bindungs- und Endpunktadresse im Code

Der folgende Code zeigt, wie Sie einen WCF-Client erstellen, indem Sie die Bindungs- und Endpunktadresse im Code mithilfe der ClientCredentials-Eigenschaft des WCF-Clients angeben.

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();  

Angeben der Bindungs- und Endpunktadresse in einer Konfigurationsdatei

Der folgende Code zeigt, wie Sie einen WCF-Client erstellen, indem Sie die Bindungs- und Endpunktadresse in einer app.config Datei angeben.

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

Der folgende XML-Code zeigt die Konfigurationsdatei, die für die Tabelle "Kunde" durch das Add Adapter Service Reference Plug-In erstellt wurde. Diese Datei enthält die Clientendpunktkonfiguration, auf die im vorherigen Beispiel verwiesen wird.

<?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>  

Wenn ein Projekt über mehrere WCF-Clients verfügt, werden mehrere Clientendpunkteinträge in der Konfigurationsdatei definiert. Jeder WCF-Clienteintrag erhält einen eindeutigen Namen, der auf seiner Bindungskonfiguration und dem Ziel-SQL-Server-Artefakt basiert, zum Beispiel: "SqlAdapterBinding_TableOp_dbo_Customer". Wenn Sie mehrere Male eine Verbindung herstellen, um die WCF-Clients in Ihrem Projekt zu erstellen, werden mehrere Bindungskonfigurationseinträge erstellt, eine für jede Verbindung. Diese Bindungskonfigurationseinträge werden wie folgt benannt: SqlAdapterBinding, SqlAdapterBinding1 usw. Jeder während einer bestimmten Verbindung erstellte Clientendpunkteintrag verweist auf den Bindungseintrag, der während dieser Verbindung erstellt wurde.

Siehe auch

Entwickeln von SQL-Anwendungen mithilfe des WCF-Dienstmodells
Generieren eines WCF-Client- oder WCF-Dienstvertrags für SQL Server-Objekte
Erstellen des SQL Server-Verbindungs-URI