web-dev-qa-db-fra.com

FileloadException / MSG 10314 Erreur lors de l'exécution de la procédure stockée CLR

Recevoir l'erreur suivante lors de la tentative d'exécution d'un PROC CLR stocké. Toute aide est très appréciée.

Msg 10314, Level 16, State 11, Line 1
An error occurred in the Microsoft .NET Framework while trying to load Assembly id 65752. 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 'orders, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An error relating to security occurred. (Exception from HRESULT: 0x8013150A)
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.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)
35
homeskillet

Ran Les commandes SQL ci-dessous et le problème semble être résolu.

USE database_name
GO

EXEC sp_changedbowner 'sa'
ALTER DATABASE database_name SET TRUSTWORTHY ON 
69
homeskillet

Construisez votre projet avec une configuration CPU. J'ai eu ce problème lors de la compilation de mon propre projet avec la configuration x86 et j'ai essayé de l'exécuter sur X64 SQL Server.

8
nuwanda

Appliqué toute la suggestion ci-dessus et elle a échoué. Ensuite, j'ai recompressé mon code source avec une option "Toute CPU", et cela a fonctionné!

Ce lien a aidé: SQL Server a échoué à charger l'assemblage avec permission

2
101V
ALTER AUTHORIZATION ON DATABASE::mydb TO sa;
ALTER DATABASE [myDB] SET TRUSTWORTHY ON
GO
0
Musakkhir Sayyed

Votre assembly dépose-t-elle des E/S? Si tel est le cas, vous devez accorder l'autorisation de l'Assemblée de le faire. Dans SSMS:

  1. Développer "Bases de données"
  2. Développez le nœud pour votre base de données
  3. Développer "Programmabilité"
  4. Développer "Assemblages"
  5. Cliquez avec le bouton droit sur votre montage, choisissez Propriétés
  6. Sur la page "Général", changez "Set d'autorisation" sur "Accès externe"
0
Craig Stuntz