2017-03-29 19 views
1

MSSSQLでアセンブリを使用する関数実行している間、私はエラーの下に受け付けております:MSSQL負荷組立誤差

Msg 10314, Level 16, State 11, Line 36 An error occurred in the Microsoft .NET Framework while trying to load assembly id 65800. 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 'exporttoexcel, Version=0.76.0.0, Culture=neutral, PublicKeyToken=f73371c9a1809a3f' or one of its dependencies. Exception from HRESULT: 0x80FC80F1 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)

をしかし、私は機能やアセンブリを再作成した後、すべてがしばらくの間正常に動作します:

DROP FUNCTION [dbo].[fnExportToExcel] 
DROP ASSEMBLY ExcelExporter 

CREATE ASSEMBLY ExcelExporter 
AUTHORIZATION [DOMAIN\ACCOUNT] 
FROM 'ExportToExcel.dll' 
WITH PERMISSION_SET = UNSAFE 

CREATE FUNCTION [dbo].[fnExportToExcel](@Query [nvarchar](max), @FilePath [nvarchar](max), @FileName [nvarchar](max), @SheetNames [nvarchar](max)) 
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER 
AS 
EXTERNAL NAME ExcelExporter.[ExportToExcel_DLL.cls_ExcelExport].[ExportToExcel] 
GO 

何が原因でMSSQLがアセンブリ参照を失う原因になりますか?

+0

あなたは、データベース間またはちょうどそれが住んでいるデータベースからアセンブリを呼び出していますか? –

+0

私はデータベース間でそれを呼び出しています。 – ironcurtain

+1

おそらくこれは:https://blogs.msdn.microsoft.com/psssql/2010/03/23/unable-to-load-clr-assembly-intermittently/ –

答えて

1

私は、このコマンドを実行している私の場合はアレックス・K. Link

によって提供されるリンクを使用して問題を解決:

EXEC sp_changedbowner 'sa'