Произошла ошибка в Microsoft.NET каркас при попытке загрузки сборки id 65675
Я должен работать над существующим приложением, состоящим из многих проектов, включая проект базы данных.
В проекте 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:ProjectsPPPXXXYYYDatadsLandholdings.Designer.cs:line 5678
at XXX.YYY.Browse.BrowseLandholdings.btnSearch_Click(Object sender, EventArgs e) in E:ProjectsPPPPXXXXYYYBrowseBrowseLandholdings.cs:line 352
после исследования в Интернете я обнаружил, что это может помочь изменить "уровень разрешений" на вкладке "база данных" моих "свойств проекта базы данных" с "безопасного" на "небезопасный" или "внешний".
но ошибка все равно coming up after doing mentioned change!
кто-нибудь, возможно, имеет представление, почему это происходит?
любая помощь оценена заранее.
5 ответов
Это сделал трюк для меня:
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;
трассировка стека указывает на сборку, которую не удалось загрузить. Если ты употребляешь .dll файлы для создания или загрузки чего-либо (импорт/экспорт данных), вы можете начать там.
убедитесь, что сборка является правильной версией для вашего приложения или что она даже существует в каталоге.
кроме того, дважды проверьте соглашение об именах в сборке. Трассировку стека показывает имя сборки или база кода недействительны. Это язык для анализа в вашей заявление? В названии есть опечатка?
Это могут быть действительно элементарные места для начала, поэтому мои извинения, если вы пробовали это. Я сталкивался с подобными следами раньше ,и в моем случае это обычно составляло пропажу.несовместимость dll или версии.
наконец-то я смог это исправить,
- включить "интеграция CLR " в SQL server.
- развернуть объект CLR, что в моем случае было проектом базы данных, и я также установил уровень разрешений на внешний.
Спасибо за все комментарии/ответы.
убедитесь, что сборка, которую вы используете xxxxx.yyyy.сборка базы данных из не предназначена для более старой версии .NET Framework.
это сработало для меня
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***/