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
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.
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.
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)
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
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.