An error occurred in the Microsoft .NET Framework while trying to load assembly id 65545/65536

Hi Folks,

Today I am sharing an experience which I encountered with respect to Assemblies.

I was working on Migration project and as part of it migrated few databases after that the development has started facing the below error message.

This has come up when the developer is trying to run assembly which has been developed by third party vendor


An error occurred in the Microsoft .NET Framework while trying to load assembly id 65536. The server may be running out of resources, or the assembly may not be trusted. 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 'sql#, Version=4.1.98.0, Culture=neutral, PublicKeyToken=f0a9879d7b87f048' or one of its dependencies. An error relating to security occurred. (Exception from HRESULT: 0x8013150A)
System.IO.FileLoadException:
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection)
   at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)

When searched in internet many people asked to create certificated but before that I thought of checking the Database owner .

As it was me who performed restore it was with my name hence I changed that to SA and asked the developer to test and it started working fine.

There are other suggestions like turning on the trustworthy property or applying latest CU. May be in my case I was lucky enough to get the solution.

This is the second error and this got popped up when I requested the developer to make use of ApplicationIntent=Readonly.

Interestingly the reports are running fine on primary replica  but not on secondary server.


An error occurred in the Microsoft .NET Framework while trying to load assembly id 65545. The server may be running out of resources, or the assembly may not be trusted. 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 'clrfunctions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Exception from HRESULT: 0x80FC80F1
System.IO.FileLoadException:
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection)
   at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.Load(String assemblyString)


To resolve this I did failover and changed the database ownership to SA and failed it back to primary and reports started working fine.

I wanted you guys to share your experience and feel free to comment on the same especially on how the database owner would affect this.

Comments

bikram said…
U r the best Buddy...Every article u posted, I hv gone through, are really good.. Some might ignore it... Bt the truth is, u r the best and ur suggestion always helpful for me ( at least I can say)....
I had the same problem.

1. First make sure that the database is CLR enabled:

USE [myDB]
EXEC sp_configure 'clr enabled', 1
RECONFIGURE

2. Set it to thrusthworthy:

ALTER DATABASE myDB SET TRUSTWORTHY ON;

3. Change owner to SA:


EXEC sp_changedbowner 'sa'


That should solve it.