SqlDependency.Start 方法

定义

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

重载

Start(String)

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

Start(String, String)

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

注解

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

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

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

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

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

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

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

对于使用多个线程来表示不同用户凭据的应用程序,无需向组提供 dbo 角色,就可以 SqlDependency 使工作正常,因为不同的用户可以使用 SqlCacheDependencySqlCommand) 管理员创建的通知队列来订阅和侦听 (。 当相关应用程序域启动时,使用 (Windows) 有权初始化服务/队列的用户的凭据调用 Start,该凭据 (数据库) 的 CREATE QUEUE 和 CREATE SERVICE 权限。 确保每个 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

另请参阅

适用于