SqlDependency.Start メソッド

定義

依存関係の変更通知を受け取るリスナーを開始します。Starts the listener for receiving dependency change notifications.

オーバーロード

Start(String)

接続文字列で指定される SQL Server のインスタンスから依存関係の変更通知を受け取るリスナーを開始します。Starts the listener for receiving dependency change notifications from the instance of SQL Server specified by the connection string.

Start(String, String)

接続文字列で指定される SQL Server のインスタンスから依存関係の変更通知を受け取るリスナーを、指定した SQL Server Service Broker キューを使用して開始します。Starts the listener for receiving dependency change notifications from the instance of SQL Server specified by the connection string using the specified SQL Server Service Broker queue.

注釈

SQL Server SqlDependency接続でエラーが発生すると、リスナーは再起動します。The SqlDependency listener will restart when an error occurs in the SQL Server connection.

Startメソッドを複数回呼び出すことができます。次の制限が適用されます。Multiple calls to the Start method can be made, subject to the following restrictions:

  • 同じパラメーターを持つ複数の呼び出し (呼び出し元のスレッドで同じ接続文字列と Windows 資格情報) が有効です。Multiple calls with identical parameters (the same connection string and Windows credentials in the calling thread) are valid.

  • 異なる接続文字列を使用した複数の呼び出しは、次の場合に限り有効です。Multiple calls with different connection strings are valid as long as:

    • 各接続文字列は、別のデータベースを指定します。Each connection string specifies a different database, or

    • 各接続文字列は、別のユーザーを指定します。Each connection string specifies a different user, or

    • 呼び出しは異なるアプリケーションドメインから行われます。The calls come from different application domains.

複数のスレッドをSqlDependency使用するアプリケーションでは、別のユーザーがサブスクライブしてリッスンすることができるため (またはSqlCommandを使用SqlCacheDependency )、複数のスレッドを使用するアプリケーションでは、この作業を正しく行うことができます。管理者によって作成された通知キュー。You can make the SqlDependency work correctly for applications that use multiple threads to represent different user credentials without giving the dbo role to the group, because different users can subscribe and listen (using SqlCacheDependency or SqlCommand) to a notification queue created by an administrator. 関連するアプリケーションドメインが開始されたら、サービス/キューを初期化するアクセス許可 (データベースの CREATE QUEUE および CREATE SERVICE 権限) を持つユーザーの (Windows) 資格情報で Start を呼び出します。When the relevant application domain starts, call Start with the (Windows) credentials of a user that has permission to initialize a service/queue (the CREATE QUEUE and CREATE SERVICE permissions for the database). Start が AppDomain ごとに1回だけ呼び出されるようにします。それ以外の場合は、あいまいな例外が発生します。Ensure that Start is only called once per AppDomain, otherwise an ambiguity exception is raised. ユーザースレッドには、通知をサブスクライブする権限 (データベースの SUBSCRIBE QUERY 通知権限) が必要です。The user thread must have permission to subscribe to the notification (the SUBSCRIBE QUERY NOTIFICATIONS permission for the database). SqlDependency管理者以外のユーザーのサブスクリプション要求を、管理者によって作成されたサービス/キューに関連付けます。SqlDependency will associate the subscription request of a non-administrator user to the service/queue created by the administrator.

Start(String)

接続文字列で指定される SQL Server のインスタンスから依存関係の変更通知を受け取るリスナーを開始します。Starts the listener for receiving dependency change notifications from the instance of SQL Server specified by the connection string.

public:
 static bool Start(System::String ^ connectionString);
public static bool Start (string connectionString);
static member Start : string -> bool
Public Shared Function Start (connectionString As String) As Boolean

パラメーター

connectionString
String

変更通知の取得元である SQL Server のインスタンスの接続文字列。The connection string for the instance of SQL Server from which to obtain change notifications.

戻り値

リスナーが正常に初期化された場合は true。互換性のあるリスナーが既に存在する場合は falsetrue if the listener initialized successfully; false if a compatible listener already exists.

例外

connectionString パラメーターが NULL です。The connectionString parameter is NULL.

connectionString パラメーターは、このメソッドの以前の呼び出しと同一ですが、他のパラメーターに異なるものがあります。The connectionString parameter is the same as a previous call to this method, but the parameters are different.

CLR 内からメソッドが呼び出されました。The method was called from within the CLR.

必要な SqlClientPermission コード アクセス セキュリティ (CAS: Code Access Security) のアクセス許可が、呼び出し元にありません。The caller does not have the required SqlClientPermission code access security (CAS) permission.

このメソッドの後続の呼び出しは、同一 connectionString パラメーターを指定し、異なるユーザーまたは同一のスキーマを既定としないユーザーで行われました。A subsequent call to the method has been made with an equivalent connectionString parameter with a different user, or a user that does not default to the same schema.

いずれかの、基になる SqlClient 例外も発生しました。Also, any underlying SqlClient exceptions.

注釈

このメソッドは、 AppDomain connectionStringパラメーターによって指定された SQL Server のインスタンスから依存関係通知を受け取るためのリスナーを開始します。This method starts the listener for the AppDomain for receiving dependency notifications from the instance of SQL Server specified by the connectionString parameter. このメソッドは、複数のサーバーに対して異なる接続文字列を使用して複数回呼び出すことができます。This method may be called more than once with different connection strings for multiple servers.

追加の解説についStartては、「」を参照してください。For additional remarks, see Start.

こちらもご覧ください

Start(String, String)

接続文字列で指定される SQL Server のインスタンスから依存関係の変更通知を受け取るリスナーを、指定した SQL Server Service Broker キューを使用して開始します。Starts the listener for receiving dependency change notifications from the instance of SQL Server specified by the connection string using the specified SQL Server Service Broker queue.

public:
 static bool Start(System::String ^ connectionString, System::String ^ queue);
public static bool Start (string connectionString, string queue);
static member Start : string * string -> bool
Public Shared Function Start (connectionString As String, queue As String) As Boolean

パラメーター

connectionString
String

変更通知の取得元である SQL Server のインスタンスの接続文字列。The connection string for the instance of SQL Server from which to obtain change notifications.

queue
String

使用する、既存の SQL Server Service Broker キュー。An existing SQL Server Service Broker queue to be used. null の場合は、既定のキューが使用されます。If null, the default queue is used.

戻り値

リスナーが正常に初期化された場合は true。互換性のあるリスナーが既に存在する場合は falsetrue if the listener initialized successfully; false if a compatible listener already exists.

例外

connectionString パラメーターが NULL です。The connectionString parameter is NULL.

connectionString パラメーターは、このメソッドの以前の呼び出しと同一ですが、他のパラメーターに異なるものがあります。The connectionString parameter is the same as a previous call to this method, but the parameters are different.

CLR 内からメソッドが呼び出されました。The method was called from within the CLR.

必要な SqlClientPermission コード アクセス セキュリティ (CAS: Code Access Security) のアクセス許可が、呼び出し元にありません。The caller does not have the required SqlClientPermission code access security (CAS) permission.

このメソッドの後続の呼び出しは、同一 connectionString パラメーターを指定しているが、異なるユーザーまたは同一のスキーマを既定としないユーザーで行われました。A subsequent call to the method has been made with an equivalent connectionString parameter but a different user, or a user that does not default to the same schema.

いずれかの、基になる SqlClient 例外も発生しました。Also, any underlying SqlClient exceptions.

注釈

このメソッドは、 AppDomain connectionStringパラメーターによって指定された SQL Server のインスタンスから依存関係通知を受け取るためのリスナーを開始します。This method starts the listener for the AppDomain for receiving dependency notifications from the instance of SQL Server specified by the connectionString parameter. このメソッドは、複数のサーバーに対して異なる接続文字列を使用して複数回呼び出すことができます。This method may be called more than once with different connection strings for multiple servers.

キュー名が指定されてSqlDependencyいない場合は、プロセスに複数のプロセスが含まAppDomainれていても、によって、プロセス全体に使用される一時キューとサービスがサーバーに作成されます。If no queue name is specified, SqlDependency creates a temporary queue and service in the server that is used for the entire process, even if the process involves more than one AppDomain. キューとサービスは、アプリケーションのシャットダウン時に自動的に削除されます。The queue and service are automatically removed upon application shutdown.

追加の解説についStartては、「」を参照してください。For additional remarks, see Start.

こちらもご覧ください

適用対象