2013-07-10 119 views
2

我對SQL 2008 R2一串SQL CLR程序集。這些程序集以.Net Framework 3.5爲目標。鑑於SQL 2008支持2.0 .NET框架版本,我假定SQL從System GAC加載了安全程序集,並且預期在SQL中安裝不安全程序集。我對這些不安全程序集的引用是.NET 2.0版。現在,當我將這個數據庫恢復到SQL 2012時,我的CLR代碼失敗,提示「未找到不安全的程序集版本4.0」。我不明白這個錯誤。數據庫mdf文件本身存在2.0版本的不安全系統程序集。爲什麼SQL查找4.0?我想我錯過了什麼「SQL支持X版本的.NET框架」的意思。SQL CLR - 遷移自2008 R2到2012年

+0

這似乎是重複[註冊CLR函數(基於WCF)在SQL Server 2012(http://stackoverflow.com/問題/ 15173120 /註冊-CLR功能的WCF爲基礎,在-SQL服務器2012)。(只是把它說明) –

回答

3

我能得到我所面臨的問題的根本原因。 SQL 2012支持用於SQLCLR的.NET Framework版本4.0,因此會從4.0框架加載所有框架程序集。因此我需要升級所有我的程序集以使用4.0框架程序集。即使對我來說http://blogs.msdn.com/b/dohollan/archive/2012/04/20/sql-server-2012-sqlclr-net-framework-version.aspx?CommentPosted=true#commentmessage

但事情沒有工作。事實證明在4.0中,.NET將諸如System.ServiceModel之類的框架程序集從Pure .Net程序集更改爲混合模式程序集。 SQL CLR無法加載此類程序集。因此,根據混合模式組件前2012年,所有用戶自定義組件不工作了2012年:( 最嚴重的打擊是以前工作完全SQL和WCF集成在2012 sicne WCF取決於ServiceModel打破。 這裏更多http://blogs.msdn.com/b/psssql/archive/2013/02/23/unable-to-register-net-framework-assembly-not-in-the-supported-list.aspx

我們結束寫出來了我們的WCF操作簡單的web服務的包裝和SQLCLR編寫一個Web服務客戶端。

+0

你能提供的步驟/示例代碼的Webservice的包裝是怎麼做的,並在S中的web服務客戶端QLCLR? – sojim2

相關問題