SQL アダプターのクライアント バインドを構成する
WCF クライアント クラスを生成したら、WCF クライアント (インスタンス) を作成し、そのメソッドを呼び出して Microsoft BizTalk Adapter for SQL Serverを使用できます。 SQL アダプターが公開する操作用に WCF クライアント クラスとヘルパー コードを生成する方法については、「Generate a WCF Client or WCF Service Contract for SQL Server Artifacts」を参照してください。
WCF クライアントを作成するには、エンドポイント アドレスとバインドを指定する必要があります。 エンドポイント アドレスには有効な SQL 接続 URI が含まれている必要があり、バインドは SQL バインディング (sqlBinding) のインスタンスである必要があります。 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 クライアントを作成するために複数回接続すると、接続ごとに 1 つずつ、複数のバインド構成エントリが作成されます。 これらのバインド構成エントリには、SqlAdapterBinding、SqlAdapterBinding1 などの名前が付けられます。 特定の接続中に作成された各クライアント エンドポイント エントリは、その接続中に作成されたバインド エントリを参照します。
参照
WCF サービス モデルを使用して SQL アプリケーションを開発する
SQL Server アイテムの WCF クライアントまたは WCF サービス コントラクトを生成する
SQL Server接続 URI を作成する