SqlDependency.Start 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
启动侦听器以接收依赖项更改通知。
重载
| 名称 | 说明 |
|---|---|
| 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。
调用方没有所需的 SqlClientPermission 代码访问安全性(CAS)权限。
注解
此方法启动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。
调用方没有所需的 SqlClientPermission 代码访问安全性(CAS)权限。
注解
此方法启动AppDomain的侦听器,以便从 connectionString 参数指定的SQL Server实例接收依赖项通知。 对于多个服务器,可以使用不同的连接字符串多次调用此方法。
如果未指定队列名称, SqlDependency 则即使进程涉及多个 AppDomain队列,也会在用于整个进程的服务器中创建临时队列和服务。 应用程序关闭后,会自动删除队列和服务。
有关其他备注,请参阅 Start。