代码改变世界

sqlserver 在尝试加载程序集 ID 65537 时 Microsoft .NET Framework 出错.服务器可能资源不足

  abce  阅读(7204)  评论(2编辑  收藏  举报

报错信息:

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>在 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) <br>在 System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) <br>在 System.Reflection.Assembly.Load(String assemblyString) <br>在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) <br>在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) <br>在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) <br>在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) <br>在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) <br>在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) <br>在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) <br>在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() <br>在 UFSoft.UBF.Util.DataAccess.AbstractDataAccessor.Execute(IDbConnection con, String commandText, DataParamList dataParams, CommandType cmdType) <br>在 UFSoft.UBF.Util.DataAccess.DataAccessor.RunSP(String sprocName, DataParamList dataParams) <br>在 UFIDA.UU.GL
 
.Report.DataCommand.GeneralAndBalanceDataCommand.GetResultTempTalbe1WithSP() <br>在 UFIDA.UU.GL
 
.Report.DataCommand.GeneralAndBalanceDataCommand.ProcessData() <br>在 UFIDA.UU.GL
 
.Report.DataCommand.GeneralAndBalanceDataCommand.GetOqlString() <br>在 UFIDA.UBF.Report.App.Data.AbsReportDataCommand.ExecuteDataReader() <br>在 UFSoft.UBF.Report.Interface.BaseReportDataCommand.InternalExecuteDataReader(String& errorMessage)

  

这数据库是从其他数据库还原到本地数据库的,不少网友说在还原数据库之后,可以将数据库的OWNER设置成SA就可以解决

1
exec sp_changedbowner 'sa'

实际上并不能解决!

从报错信息可以看出,服务器不信任该程序集。将数据库的可信修改为true即可:

 

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'

  

 

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示