天天看點

sqlserver 在嘗試加載程式集 ID 65537 時 Microsoft .NET Framework 出錯.伺服器可能資源不足

報錯資訊:

1

2

3

4

5

6

7

8

9

10

11

​處理報表時出錯。​

​​

​對資料集“query”執行查詢失敗。​

​​

​在嘗試加載程式集 ID 65536 時 Microsoft .NET Framework 出錯。伺服器可能資源不足,或者不信任該程式集,因為它的 PERMISSION_SET 設定為 EXTERNAL_ACCESS 或 UNSAFE。請重新運作查詢,或檢查有關的文檔了解如何解決程式集信任問題。有關此錯誤的詳細資訊: System.IO​

​​

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

​​

​.FileLoadException: 在 System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) <br data-filtered=​

​​

​"filtered"​

​​

​>在 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) <br data-filtered=​

​​

​"filtered"​

​​

​>在 System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) <br data-filtered=​

​​

​"filtered"​

​​

​>在 System.Reflection.Assembly.Load(String assemblyString) <br data-filtered=​

​​

​"filtered"​

​​

​>在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) <br data-filtered=​

​​

​"filtered"​

​​

​>在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) <br data-filtered=​

​​

​"filtered"​

​​

​>在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) <br data-filtered=​

​​

​"filtered"​

​​

​>在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) <br data-filtered=​

​​

​"filtered"​

​​

​>在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) <br data-filtered=​

​​

​"filtered"​

​​

​>在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) <br data-filtered=​

​​

​"filtered"​

​​

​>在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) <br data-filtered=​

​​

​"filtered"​

​​

​>在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() <br data-filtered=​

​​

​"filtered"​

​​

​>在 UFSoft.UBF.Util.DataAccess.AbstractDataAccessor.Execute(IDbConnection con, String commandText, DataParamList dataParams, CommandType cmdType) <br data-filtered=​

​​

​"filtered"​

​​

​>在 UFSoft.UBF.Util.DataAccess.DataAccessor.RunSP(String sprocName, DataParamList dataParams) <br data-filtered=​

​​

​"filtered"​

​​

​>在 UFIDA.UU.GL​

​.Report.DataCommand.GeneralAndBalanceDataCommand.GetResultTempTalbe1WithSP() <br data-filtered=​

​​

​"filtered"​

​​

​>在 UFIDA.UU.GL​

​.Report.DataCommand.GeneralAndBalanceDataCommand.ProcessData() <br data-filtered=​

​​

​"filtered"​

​​

​>在 UFIDA.UU.GL​

​.Report.DataCommand.GeneralAndBalanceDataCommand.GetOqlString() <br data-filtered=​

​​

​"filtered"​

​​

​>在 UFIDA.UBF.Report.App.Data.AbsReportDataCommand.ExecuteDataReader() <br data-filtered=​

​​

​"filtered"​

​​

​>在 UFSoft.UBF.Report.Interface.BaseReportDataCommand.InternalExecuteDataReader(String& errorMessage)​

這資料庫是從其他資料庫還原到本地資料庫的,不少網友說在還原資料庫之後,可以将資料庫的OWNER設定成SA就可以解決

1

​exec​

​​

​sp_changedbowner ​

​​

​'sa'​

實際上并不能解決!

從報錯資訊可以看出,伺服器不信任該程式集。将資料庫的可信修改為true即可:

sqlserver 在嘗試加載程式集 ID 65537 時 Microsoft .NET Framework 出錯.伺服器可能資源不足

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

​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​

​​

​databasename ​

​​

​SET​

​​

​TRUSTWORTHY ​

​​

​on​

​​

​;​

​5.注意所有者​

​​

​exec​

​​

​sp_changedbowner ​

​​

​'sa'​