SqlDependency.Start 方法

定義

啟動接收依賴變更通知的監聽器。

多載

名稱 Description
Start(String)

啟動監聽器,接收由 連接字串 指定的 SQL Server 實例的相依變更通知。

Start(String, String)

啟動監聽器,接收由連接字串指定的 SQL Server 實例,使用指定的 SQL Server Service Broker 佇列接收相依變更通知。

備註

當SQL Server連線發生錯誤時,SqlDependency 監聽器會重新啟動。

可多次呼叫此 Start 方法,但須遵守以下限制:

  • 多個參數相同(呼叫執行緒中相同的 連接字串 及 Windows 憑證)的呼叫是有效的。

  • 多個不同連接字串的通話有效,只要:

    • 每個 連接字串 指定不同的資料庫,或

    • 每個 連接字串 指定不同的使用者,或

    • 呼叫來自不同的應用領域。

你可以讓 SqlDependency 應用程式使用多個執行緒來代表不同使用者憑證的應用程式正確運作,而不必將 dbo 角色交給群組,因為不同使用者可以訂閱並聆聽(使用 SqlCacheDependencySqlCommand)管理員建立的通知佇列。 當相關應用程式域啟動時,請以有權限初始化服務/佇列的使用者(資料庫的 CREATE QUEUE 與 CREATE SERVICE 權限)的(Windows)憑證呼叫 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 實例,使用指定的 SQL Server Service Broker 佇列接收相依變更通知。

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 服務代理佇列將被使用。 若 null,則使用預設佇列。

傳回

true 如果監聽者成功初始化; false 如果已經有相容的聆聽者存在。

例外狀況

connectionString參數為 NULL。

connectionString參數與先前呼叫此方法相同,但參數不同。

該方法由CLR內部調用。

呼叫者沒有所需的 SqlClientPermission 代碼存取安全(CAS)權限。

後續呼叫該方法時,使用了相同 connectionString 參數但使用者不同,或使用者預設不使用相同結構。

還有,任何底層的 SqlClient 例外。

備註

此方法啟動 AppDomain 的監聽器,接收由 connectionString 參數指定的 SQL Server 實例的相依通知。 此方法可多次呼叫,使用不同的連線字串以支援多個伺服器。

若未指定佇列名稱, SqlDependency 則會在伺服器建立一個臨時佇列及服務,該佇列用於整個程序,即使該程序涉及多個 AppDomain。 應用程式關閉時,佇列與服務會自動移除。

更多說明請參見 Start

另請參閱

適用於