SqlDependency.Start 方法

定义

启动侦听器以接收依赖项更改通知。

重载

名称 说明
Start(String)

启动侦听器,从连接字符串指定的SQL Server实例接收依赖项更改通知。

Start(String, String)

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

注解

SqlDependency 侦听器将在SQL Server连接中发生错误时重启。

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

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

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

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

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

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

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

另请参阅

适用于