1. 程式人生 > >執行儲存過程時報“在嘗試載入程式集 ID 65645 時 Microsoft .NET Framework 出錯”,解決方案

執行儲存過程時報“在嘗試載入程式集 ID 65645 時 Microsoft .NET Framework 出錯”,解決方案

新庫是直接複製的模板庫

執行儲存過程時報如下錯


訊息 10314,級別 16,狀態 11,過程sp_Sync_CmsArticleToSearchs,第 30 行在嘗試載入程式集 ID 65645 時 Microsoft .NET Framework 出錯。伺服器可能資源不足,或者不信任該程式集,因為它的 PERMISSION_SET 設定為 EXTERNAL_ACCESS 或 UNSAFE。請重新執行查詢,或檢查有關的文件瞭解如何解決程式集信任問題。有關此錯誤的詳細資訊: 

System.IO.FileLoadException: 未能載入檔案或程式集“csharpclslibforsqlserver, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一個依賴項。發生與安全有關的錯誤。 (異常來自 HRESULT:0x8013150A)

————————————————————————————————————————————————————————————————————————

度娘給的方案是:

在還原資料庫之後,我們可以將資料庫的OWNER設定成SA.
exec sp_changedbowner 'sa'
再呼叫儲存過程就是成功的.

————————————————————————————————————————————————————————————————————————

實際上則是問題依舊

然後就開始根據錯誤提示來找問題!

首先是伺服器可能資源不足, 這個問題可以排除,那麼會不會是伺服器不信任該程式集呢

在相看資料庫的屬性時,在選項處看到有一屬性為 可信

的值是 False。那麼會不會是這個問題引起的呢?

結果將資料庫設定可信true後果然問題得到了解決



——————————————————————————————————————————————————————————

1. exec sp_configure 'show advanced options', '1';
go
reconfigure;
go
exec sp_configure 'clr enabled', '1'
go
reconfigure;    --如果執行失敗,就用這個RECONFIGURE WITH OVERRIDE;
exec sp_configure 'show advanced options', '1';
go
 
2.查SID在sys.databases 和sys.server_principals是否一致
SELECT * FROM sys.server_principals;
SELECT * FROM sys.sysdatabases ;


3.檢視程式集是否存在
SELECT * FROM sys.assemblies;SELECT * FROM sys.assembly_files;


4. 修改為ON
ALTER DATABASE tablename SET TRUSTWORTHY on;


5.注意所有者
exec sp_changedbowner 'sa'