SqlDependency.Start 方法

定义

启动用于接收依赖项更改通知的侦听器。

重载

Start(String)

启动用于接收依赖项更改通知的侦听器,该通知来自由连接字符串指定的 SQL Server 实例。

Start(String, String)

启动用于接收依赖项更改通知的侦听器,该侦听器使用指定的 SQL Server Service Broker 队列从由连接字符串指定的 SQL Server 实例接收。

注解

SqlDependencySQL Server连接出错时,侦听器将重新启动。

可以多次调用 Start 方法,但有以下限制:

  • 调用线程) 中具有相同参数的多个调用 (相同的连接字符串和 Windows 凭据有效。

  • 具有不同连接字符串的多个调用只要有效:

    • 每个连接字符串指定不同的数据库,或者

    • 每个连接字符串指定不同的用户,或者

    • 这些调用来自不同的应用程序域。

对于使用多个线程来表示不同用户凭据的应用程序,无需向组提供 dbo 角色即可正确执行 SqlDependency 工作,因为不同的用户可以使用 SqlCacheDependencySqlCommand) 管理员创建的通知队列来订阅和侦听 (。 当相关应用程序域启动时,使用 (Windows) 有权初始化服务/队列的用户的凭据 (数据库) 的 CREATE QUEUE 和 CREATE SERVICE 权限调用 Start。 确保每个 AppDomain 仅调用一次 Start,否则将引发歧义异常。 用户线程必须具有订阅通知的权限, (数据库) 的 SUBSCRIBE QUERY NOTIFICATIONS 权限。 SqlDependency 将非管理员用户的订阅请求关联到管理员创建的服务/队列。

Start(String)

启动用于接收依赖项更改通知的侦听器,该通知来自由连接字符串指定的 SQL Server 实例。

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 实例(从中获取更改通知)的连接字符串。

返回

如果侦听器初始化成功,则为 true;如果已存在兼容的侦听器,则为 false

例外

connectionString 参数为 NULL。

与上次调用此方法相比,connectionString 参数相同,但其他参数不同。

此方法是从 CLR 内部调用的。

调用方没有所必需的 SqlClientPermission 代码访问安全性 (CAS) 权限。

随后调用了该方法,调用使用等效的 connectionString 参数和不同的用户,或者不是同一架构的默认用户的用户。

还有所有基础 SqlClient 异常

注解

此方法启动 的侦听器,AppDomain以便从 参数指定的 connectionString SQL Server 实例接收依赖项通知。 对于多个服务器,可以使用不同的连接字符串多次调用此方法。

有关其他说明,请参阅 Start

另请参阅

适用于

Start(String, String)

启动用于接收依赖项更改通知的侦听器,该侦听器使用指定的 SQL Server Service Broker 队列从由连接字符串指定的 SQL Server 实例接收。

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 实例(从中获取更改通知)的连接字符串。

queue
String

要使用的现有 SQL Server Service Broker 队列。 如果为 null,则使用默认队列。

返回

如果侦听器初始化成功,则为 true;如果已存在兼容的侦听器,则为 false

例外

connectionString 参数为 NULL。

与上次调用此方法相比,connectionString 参数相同,但其他参数不同。

此方法是从 CLR 内部调用的。

调用方没有所必需的 SqlClientPermission 代码访问安全性 (CAS) 权限。

已经随后调用了该方法,调用使用等效的 connectionString 参数和不同的用户,或者不是同一架构的默认用户的用户。

还有所有基础 SqlClient 异常

注解

此方法启动 的侦听器,AppDomain以便从 参数指定的 connectionString SQL Server 实例接收依赖项通知。 对于多个服务器,可以使用不同的连接字符串多次调用此方法。

如果未指定队列名称, SqlDependency 则会在服务器中创建用于整个进程的临时队列和服务,即使进程涉及多个 AppDomain。 应用程序关闭时会自动删除队列和服务。

有关其他说明,请参阅 Start

另请参阅

适用于