FIX: Error 10314 occurs when you load .NET CLR assembly in SQL Server 2016 and 2017 database

Applies to: SQL Server 2016 DeveloperSQL Server 2016 EnterpriseSQL Server 2016 Enterprise Core

Symptoms


Assume that your application uses Microsoft .NET Common Language Runtime (CLR) assembly, and the AppDomain hosting this assembly has been unloaded for some reason or you are using the assembly for the first time since Microsoft SQL Server 2016 or 2017 startup. When the SQL statement that references the assembly is interrupted (either SQL statement cancellation is requested or a time-out occurs in client application) then the assembly load may be interrupted and any subsequent use of that assembly will fail. Additionally, you may receive error messages that resemble the following:

DateTime spid#    Error: 10314, Severity: 16, State: 11.
DateTime spid#    An error occurred in the Microsoft .NET Framework while trying to load assembly id #. The server may be running out of resources, or the assembly may not be trusted with PERMISSION_SET = EXTERNAL_ACCESS or UNSAFE.

Once this error starts to occur, any new attempt to load the assembly will cause the same error because the first error is kept in a CLR cache. To get more information on this, you can see <disableCachingBindingFailures> Element.

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section. 

Resolution


This issue is fixed in the following cumulative updates for SQL Server:

About cumulative updates for SQL Server:

Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:

References


Learn about the terminology that Microsoft uses to describe software updates.