2011-02-18 36 views
0

我必須使用外部服務來處理BLOB,只能通過遠程處理(!)。需要在SQL CLR中進行遠程處理

因此,我必須註冊一個引用System.Runtime.Remoting.dll程序集。所以,我必須自己註冊這個dll。我寧願使用最後一個框架,但至少2.0就足夠了。

當我嘗試

CREATE ASSEMBLY [System.Runtime.Remoting] 
FROM 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Runtime.Remoting.dll' 
WITH PERMISSION_SET = UNSAFE 
GO 

它說:

CREATE ASSEMBLY裝配 'System.Runtime.Remoting' 失敗 因爲裝配 'System.Runtime.Remoting' 失敗 驗證。檢查引用的 程序集是否爲最新版本,並在數據庫中執行可信 (對於external_access或unsafe)到 。 CLR驗證 錯誤信息,如果當我嘗試任何將遵循這一 消息

CREATE ASSEMBLY [System.Runtime.Remoting] 
FROM 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Runtime.Remoting.dll' 
WITH PERMISSION_SET = UNSAFE 
GO 

它說:

消息10300,級別16,狀態1,2號線 Assembly'System.Web'參考 程序集'system.enterpriseservices, version = 2.0.0.0,culture = neutral, publickeyto ken = b03f5f7f11d50a3a。', ,它不存在於當前的 數據庫中。 SQL Server的嘗試 定位並自動從這裏指裝配來自 相同 位置加載 引用的程序集,但操作失敗 (原因:版本,文化或公共 密鑰不匹配)。請將 引用程序集加載到當前的 數據庫中,然後重試您的請求。

我應該如何解決這個問題?

問候,

回答

0

不要這樣做。如果需要使用Remoting(或Web服務或外部文件訪問),則不要在SQLCLR內部處理您的BLOB。從加載BLOB的外部應用程序處理您的BLOB,連接到處理(使用遠程處理或任何類似事件),然後更新數據庫。