支援的 SQL Server CLR 裝載環境中未經測試的.NET Framework 組件的原則

適用於: SQL Server 2012 EnterpriseSQL Server 2012 StandardSQL Server 2012 Developer

簡介


本文將告訴未經測試的 Microsoft.NET Framework 組件,在.NET Framework 通用語言執行階段 (CLR) 的支援服務政策-裝載在 Microsoft SQL Server 中的環境。

更多的資訊


測試的組件和支援

當您註冊組件參考 SQL Server 中未經測試的.NET Framework 組件時,您可能會收到下列警告訊息︰

警告︰ Microsoft.Net 架構組件 'AssemblyName' 要註冊不完全測試是在裝載 SQL Server 環境中。

訊息表示.NET Framework 組件在 SQL Server CLR 裝載環境中尚未經過測試。因此,組件不支援在 SQL Server CLR 裝載環境中。

未經測試的.NET Framework 組件重要的條件,例如低記憶體條件發生時,可能會結束其主機處理程序。您可以使用 SQL Server CLR 裝載環境中的組件自行承擔風險。不過,Microsoft SQL Server 客戶支援服務 (CSS) 將會幫助您使用及不支援的.NET Framework 組件相關聯的問題進行疑難排解。如果 CSS 判斷特定的不支援組件會導致 SQL Server 問題,您可能會要求您停止使用組件。此外,您可能需要停止暫時在必要時,CSS 疑難排解特定的 SQL Server 問題時,才使用組件。

組件登錄

有兩種類型的.NET 組件︰ 純粹的和混合。純粹的.NET 組件包含僅 MSIL 指令。混合組件同時包含不受管理的機器指令和 MSIL 指令。混合組件在一般情況下編譯,c + + 編譯器中使用 「 clr 」 參數,而且也包含從原生 c + + 程式碼建置而來的機器指令。

當您使用的.NET Framework 組件不在支援的清單中時,您才能註冊組件和參考的組件,SQL Server 資料庫中時,用於建立組件的陳述式。SQL Server 建立組件的陳述式可讓只有純粹.NET Framework 組件註冊。如果組件或任何參考組件不是單純的.NET Framework 組件 (而,因此,是混合的組件),您會收到下列錯誤訊息︰

訊息 6544,層次 16,狀態 1,行 2

組件 '< 組件名稱 >' 失敗,因為組件 '< 組件名稱 >' 格式不正確或不是純.NET 組件建立的組件。

無法驗證的 PE 標頭原生虛設常式。

在此情況下,您不能使用.NET Framework 組件,以及 SQL CLR,除非組件是在支援本文所述的清單。此外,.NET Framework 組件可以從純粹組件變更混合的組件版本之間。如果您使用組件不在支援的清單中,您可能必須在.NET Framework 的一種版本,但不是在另一個,組件的運作的情況。這項限制不適用於支援的清單中的組件,因為這些組件並不需要註冊使用建立組件陳述式。

此外,您必須在升級 Microsoft.NET Framework 之後,維護這些組件。如需詳細資訊,請按一下下列的文件編號,移至 Microsoft 知識庫中的文件:
當您執行 CLR 常式,或用於 SQL Server 中的組件時, 949080錯誤訊息: 「 主機存放區中的組件具有不同的簽章,比組件在 GAC 中。(從 HRESULT 的例外狀況︰ 0x80131050)"

在 SQL Server CLR 裝載環境所支援的組件

在 SQL Server CLR 裝載環境中支援下列的.NET Framework 組件︰
  • Microsoft.VisualBasic.dll
  • Mscorlib.dll
  • System.Data.dll
  • System.dll
  • System.Xml.dll
  • Microsoft.VisualC.dll
  • CustomMarshalers.dll
  • System.Security.dll
  • System.Web.Services.dll
  • System.Data.SqlXml.dll
  • System.Transactions.dll
  • System.Data.OracleClient.dll
  • System.Configuration.dll