다음을 통해 공유


SQL 어댑터에 대한 클라이언트 바인딩 구성

WCF 클라이언트 클래스를 생성한 후 WCF 클라이언트(instance)를 만들고 해당 메서드를 호출하여 SQL Server 위해 Microsoft BizTalk 어댑터를 사용할 수 있습니다. SQL 어댑터가 노출하는 작업에 대한 WCF 클라이언트 클래스 및 도우미 코드를 생성하는 방법에 대한 자세한 내용은 SQL Server 아티팩트용 WCF 클라이언트 또는 WCF 서비스 계약 생성을 참조하세요.

WCF 클라이언트를 만들려면 엔드포인트 주소와 바인딩을 지정해야 합니다. 엔드포인트 주소는 유효한 SQL 연결 URI를 포함해야 하며 바인딩은 SQL 바인딩(sqlBinding)의 instance 되어야 합니다. SQL 연결 URI에 대한 자세한 내용은 SQL Server 연결 URI 만들기를 참조하세요. 연결 URI의 일부로 사용자 자격 증명을 지정해야 합니다. 이 항목에 설명된 대로 WCF 클라이언트의 ClientCredentials 속성을 사용할 수 있습니다.

코드 또는 구성 파일에서 SQL 바인딩 및 엔드포인트 주소를 지정할 수 있습니다. 어댑터 서비스 참조 Visual Studio 플러그 인 추가를 사용하여 WCF 클라이언트 클래스를 생성하는 경우 프로젝트에 대한 구성 파일(app.config)도 만들어집니다. 이 파일에는 어댑터 서비스 참조 추가 플러그 인을 사용하여 SQL 데이터베이스에 연결할 때 지정한 바인딩 속성 및 연결 정보(자격 증명 제외)를 반영하는 구성 설정이 포함되어 있습니다.

코드에서 바인딩 및 엔드포인트 주소 지정

다음 코드에서는 WCF 클라이언트의 ClientCredentials 속성을 사용하여 코드에서 바인딩 및 엔드포인트 주소를 지정하여 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();  

구성 파일에서 바인딩 및 엔드포인트 주소 지정

다음 코드에서는 app.config 파일에서 바인딩 및 엔드포인트 주소를 지정하여 WCF 클라이언트를 만드는 방법을 보여 있습니다.

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

다음 XML에서는 어댑터 서비스 참조 추가 플러그 인을 통해 Customer 테이블에 대해 만든 구성 파일을 보여 있습니다. 이 파일에는 이전 예제에서 참조된 클라이언트 엔드포인트 구성이 포함되어 있습니다.

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

프로젝트에 둘 이상의 WCF 클라이언트가 있는 경우 구성 파일에 여러 클라이언트 엔드포인트 항목이 정의됩니다. 각 WCF 클라이언트 항목에는 바인딩 구성 및 대상 SQL Server 아티팩트(예: "SqlAdapterBinding_TableOp_dbo_Customer")에 따라 고유한 이름이 있습니다. 프로젝트에서 WCF 클라이언트를 만들기 위해 여러 번 연결하는 경우 각 연결에 대해 하나씩 여러 바인딩 구성 항목이 만들어집니다. 이러한 바인딩 구성 항목의 이름은 SqlAdapterBinding, SqlAdapterBinding1 등으로 지정됩니다. 특정 연결 중에 만든 각 클라이언트 엔드포인트 항목은 해당 연결 중에 만든 바인딩 항목을 참조합니다.

참고 항목

WCF 서비스 모델을 사용하여 SQL 애플리케이션 개발
SQL Server 아티팩트에 대한 WCF 클라이언트 또는 WCF 서비스 계약 생성
SQL Server 연결 URI 만들기