Произошла ошибка в Microsoft .NET Framework при попытке загрузить идентификатор сборки 65675 - PullRequest
8 голосов
/ 11 ноября 2011

Я должен работать над существующим приложением, состоящим из множества проектов, включая проект базы данных. В проекте statup, являющемся приложением для Windows, при вызове Adapter.Fill(dataTable); появляется страшная ошибка, говорящая, что:

An error occurred in the Microsoft .NET Framework while trying to load assembly id 65675. The server may be running out of resources, or the assembly may not be trusted with PERMISSION_SET = EXTERNAL_ACCESS or UNSAFE. Run the query again, or check documentation to see how to solve the assembly trust issues. For more information about this error: 
System.IO.FileLoadException: Could not load file or assembly 'xxxxx.yyyy.database, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)
System.IO.FileLoadException: 
   at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.Load(String assemblyString)
 (.Net SqlClient Data Provider)



   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   at XXX.YY.Data.dsLandholdingsTableAdapters.LandholdingsTableAdapter.Fill(LandholdingsDataTable dataTable, String IV_LRNO, String SearchField, String SearchVal, Nullable`1 SearchType) in E:\Projects\PPP\XXX\YYY\Data\dsLandholdings.Designer.cs:line 5678
   at XXX.YYY.Browse.BrowseLandholdings.btnSearch_Click(Object sender, EventArgs e) in E:\Projects\PPPP\XXXX\YYY\Browse\BrowseLandholdings.cs:line 352

Проведя исследование в Интернете, я обнаружил, что это может помочь изменить «Уровень разрешений» на вкладке «База данных» моих «Свойства проекта базы данных» с «Безопасный» на «Небезопасный» или «Внешний». Dtabase Project Properties

Но ошибка все еще появляется после внесения упомянутых изменений!

Кто-нибудь может иметь представление о том, почему это происходит?

Любая помощь оценена заранее.

Ответы [ 5 ]

24 голосов
/ 12 марта 2014

Это помогло мне:

USE <DATABASE>;
EXEC sp_configure 'clr enabled' ,1
GO

RECONFIGURE
GO
EXEC sp_configure 'clr enabled'   -- make sure it took
GO

USE <DATABASE>
GO

EXEC sp_changedbowner 'sa'
USE <DATABASE>
GO

ALTER DATABASE <DATABASE> SET TRUSTWORTHY ON;  
1 голос
/ 25 сентября 2018

Это сработало для меня

EXEC sp_configure 'show advanced options', '1';
GO
RECONFIGURE;
GO

--Enable CLR (.NET Common Language Runtime)
exec sp_configure 'clr enabled', '1';
GO
RECONFIGURE;
GO
--Enable xp_CmdShell stored procedure to run Command Line programs from within T-SQL
--EXEC sp_configure 'xp_cmdshell', 1
--GO

EXEC sp_configure 'show advanced options', '0';
GO
RECONFIGURE;


 /****this is another one****/
USE master
GO
ALTER DATABASE <DB_NAME>SET TRUSTWORTHY ON

USE <DB_NAME>
GO
EXEC sp_changedbowner 'sa'
/****when error occured relating to m,emory***/ 
0 голосов
/ 15 ноября 2011

Наконец-то я мог это исправить,

  1. Включить " CLR Integration " на SQL-сервере.
  2. Развернуть объект CLR, в моем случае это был проект базы данных, и я также установил внешний уровень разрешений.

Спасибо за все комментарии / ответы.

0 голосов
/ 15 ноября 2011

Убедитесь, что сборка, из которой вы используете сборку xxxxx.yyyy.database, не нацелена на более старую версию .NET Framework.

0 голосов
/ 15 ноября 2011

Трассировка стека указывает на сборку, которую он не может загрузить. Если вы используете файлы .dll для сборки или загрузки чего-либо (импорт / экспорт данных), вы можете начать с него.

Убедитесь, что сборка является верной версией для вашего приложения или что она даже существует в каталоге.

Кроме того, дважды проверьте соглашение об именах в сборке. Трассировка стека показывает недопустимое имя сборки или кодовую базу. Разбирается ли язык в вашем приложении? Есть ли в названии опечатка?

Это может быть действительно элементарное место для начала, так что приношу свои извинения, если вы попробовали это. Я сталкивался со следами, подобными этим, и в моем случае это обычно приводило к отсутствию .dll или несовместимости версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...