2014年10月6日 星期一

SQL CLR部署到SQL Server 2005問題(6218)

今天將一個原本在SQL 2012上使用的CLR部署到SQL 2005 資料庫,結果出現了以下的錯誤

(161,1): SQL72014: .Net SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 組件 'SQLCLR' 的 CREATE ASSEMBLY 失敗,因為組件 'SQLCLR' 驗證失敗。請檢查參考的組件是否為最新的,而且受信任 (針對 external_access 或不安全) 於資料庫中執行。接著將會出現 CLR 驗證器的訊息 (如果有的話)
(161,0): SQL72045: Script execution error.  The executed script:


參考這篇KB

http://msdn.microsoft.com/zh-tw/library/vstudio/dahcx0ww%28v=vs.100%29.aspx

SQL Server 2005 和 SQL Server 2008 僅支援使用 .NET Framework 2.0、3.0 或 3.5 版所建置的 SQL Server 專案。 如果您嘗試部署SQL Server專案,SQL Server 2005或SQL Server 2008,將顯示錯誤消息:Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database(在進行校驗是您要部署的程式集的名稱)。

所以要將部署時的Target Framework改為 3.5的版本再部署即OK。

1 則留言:

  1. 不好意思請問一下,你的Target Framework 3.5是組件的版本還是SQL Server Clr的版本,假如程式碼有用到Framework 4.0時要如何升級SQL Server Clr版本也是4.0呢

    回覆刪除

IIS 網站無法下載中文檔名檔案因為取消高位元字元

 網址+中文檔案名稱方式下載檔案顯示 404 - 找不到檔案或目錄。 但英數字檔案名稱則可下載。 因為設定GCB IIS,其中1項 將高位元字元預設取消勾選了。 27 TWGCB-04-014-0028 要求篩選與其他限制模組 允許高位元字元 這項原則設定決定查詢...