透過 Visual Studio 部署 SQL CLR 物件時,可能會遇到逾時問題

本文可協助您解決透過Visual Studio部署 SQL Common Language Runtime (CLR) 物件時所發生的逾時問題。

原始產品版本:SQL Server
原始 KB 編號: 2011805

徵兆

當您將 SQL CLR 物件從 Visual Studio 部署到 SQL Server 時,可能會遇到類似下列的各種錯誤:

  • 錯誤訊息 1:

    錯誤:啟動資料庫上傳交易失敗。
    錯誤:無法完成作業

  • 錯誤訊息 2:

    部署檔案:TEstAssembly.dll,路徑:E:\cases\CL MY\TEstAssembly\TEstAssembly\obj\Debug\TEstAssembly.dll ...錯誤:逾時已過期。 在作業完成前就已超過逾時期間,或是伺服器沒有回應。

但是,如果您在 SQL Server Management Studio 中使用 CREATE ASSEMBLY 命令部署相同的 CLR 物件,則不會遇到任何問題。

原因

當 SQL CLR 物件太大,因此需要很長的時間才能將物件部署到 SQL Server 時,就會發生此問題。 連線的預設逾時值為 15 秒,而查詢則分別為 30 秒。 部署大型元件時,CREATE ASSEMBLY在 SQL Server 後端上執行的語句可能需要 30 秒以上的時間才能傳回,進而產生徵兆一節中所述的錯誤。

解決方法

使用下列程式增加 Visual Studio 中的查詢逾時和連線逾時值。

變更查詢逾時

  1. 在 Visual Studio IDE 中,流覽至 [工具-> 選項 -> 資料庫工具 -> 查詢和檢視設計工具]。

  2. 您可以取消核取 [取消長時間執行的查詢] 選項,或將 [取消后] 選項 **** 的值變更為較高的值。

變更連線逾時

  1. 在 Visual Studio IDE 中,流覽至 [檢視 -> 伺服器總管],以啟用 [伺服器總管]。

  2. 在 [伺服器總管] 中,以滑鼠右鍵按兩下要部署CLR物件的SQL Server 連線,然後選取 [ 修改連線]。

  3. 選取 [修改連線] 視窗中的 [進階] 按鈕。

  4. 在 [進階屬性] 視窗中,將 [初始化] 區段下的 [連接逾時] 值變更為較高的值。