Dot-Net

SQLCLR 使用錯誤版本的 .NET Framework

  • May 6, 2010

在最近重新啟動我們的開發伺服器期間,SQL Server開始使用.NET 4.0SQLCLR。這意味著在 SQL 中使用 CLR 沒有任何效果,或者至少這是我通過閱讀這些來源的理解:

<http://software.intel.com/en-us/blogs/2009/10/16/sql-server-2008-sqlclr-net-framework-version/>

www.sqlskills.com/BLOGS/BOBB/post/On-SQL-Server-and-NET-40.aspx

我們得到的只是這種類型的錯誤消息:

消息 6517,級別 16,狀態 1,第 1 行無法創建 AppDomain“xxx.dbo[ddl].3”。方法的類型簽名與互操作不兼容。

執行語句(由@john-christensen 建議)

select * from sys.dm_clr_properties

產生以下資訊:

*Name*      *Value*
directory   C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
version     v4.0.30319
state       CLR is initialized

有誰知道如何解決這個問題,或者我們如何強制 SQL Server CLR 使用較早版本的框架?

supportedRuntime通常,您可以通過在應用程序的配置文件中指定標記來強制 .NET 應用程序使用特定的 .NET Framework 版本。

因此,您可以嘗試在 SQL 實例的根路徑下的文件夾中創建一個sqlservr.exe.config,並\Binn在此處指定您希望僅使用 .NET 最高 3.5 的版本。檢查此 MSDN 連結以了解配置文件的結構。

我遇到了同樣煩人的問題。我的數據庫中的地理/幾何資料都不起作用。花了我一些不成功的 SQL 伺服器重新安裝最終(幾週後!)發現我的系統資料庫中的以下鍵已設置為“1”

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\OnlyUseLatestCLR

當我將其重置為“0”並重新啟動機器時,一切又恢復了!

他的

引用自:https://stackoverflow.com/questions/2781624