Politique de support pour les assemblys.NET Framework non testés dans l’environnement hébergé SQL Server CLR

INTRODUCTION

Cet article décrit la stratégie de prise en charge pour les assemblys de Microsoft.NET Framework non testés dans le common language runtime (CLR) du.NET Framework-hébergés d’environnement dans Microsoft SQL Server.

Plus d'informations

Ensemble de test et de prise en charge

Lorsque vous inscrivez un assembly qui référence un assembly.NET Framework non testé dans SQL Server, le message d’avertissement suivant s’affiche :

Avertissement : L’assembly 'NomAssembly' vous enregistrez de Microsoft .net Framework n’est pas entièrement testé dans un environnement de SQL Server hébergée.

Le message signifie que l’assembly du.NET Framework n’a pas été testé dans l’environnement hébergé SQL Server CLR. Par conséquent, l’assembly n’est pas pris en charge dans l’environnement hébergé SQL Server CLR.

Un assembly.NET Framework testé peut quitter son processus hôte lorsque se produit une condition critique comme condition de mémoire faible. Vous pouvez utiliser l’assembly dans l’environnement hébergé SQL Server CLR à vos propres risques. Toutefois, Microsoft SQL Server client Support Services (CSS) vous aidera pas à utiliser et à résoudre les problèmes qui sont associés à un assembly.NET Framework non pris en charge. Si CSS détermine qu’un assembly non pris en charge particulier provoque des problèmes de SQL Server, vous devrez peut-être arrêter à l’aide de l’assembly. En outre, vous devrez peut-être arrêter temporairement lorsque CSS permet de résoudre un problème spécifique de SQL Server s’il est nécessaire, l’utilisation de l’assembly.

Enregistrement de l’assembly

Il existe deux types d’assemblys .NET : pures et mixtes. Les assemblys .NET purs contiennent uniquement des instructions MSIL. Les assemblys mixtes contiennent à la fois des instructions machine non managées et des instructions MSIL. Les assemblys mixtes sont en général compilés dans un compilateur C++ en utilisant le commutateur « clr » et également contient des instructions machine générées à partir de code C++ natif.

Lorsque vous utilisez un assembly.NET Framework qui n’est pas dans la liste pris en charge, vous devez utiliser l’instruction CREATE ASSEMBLY pour enregistrer l’assembly et les assemblys référencés dans la base de données de SQL Server. L’instruction SQL Server CREATE ASSEMBLY permet uniquement les assemblys.NET Framework purs être inscrit. Si l’assembly ou tout assembly référencé n’est pas un assembly.NET Framework pur (et, par conséquent, est un assembly mixte), le message d’erreur suivant s’affiche :

Msg 6544, niveau 16, état 1, ligne 2

CREATE ASSEMBLY pour l’assembly '< nom de l’assembly >' a échoué car l’assembly '< nom de l’assembly >' est incorrect ou pas un assembly .NET pur.

Non vérifiable PE en-tête/stub natif.

Dans ce cas, vous ne pouvez pas utiliser l’assembly.NET Framework avec SQL CLR, sauf si l’assembly est dans la liste pris en charge qui est décrit dans cet article. En outre, un assembly.NET Framework peut modifier depuis un assembly pur à un assembly mixte entre les versions. Si vous utilisez un assembly qui n’est pas dans la liste pris en charge, vous pouvez avoir une situation dans laquelle l’assembly fonctionne dans une version du.NET Framework, mais pas dans une autre. Cette restriction ne s’applique pas aux assemblys dans la liste pris en charge, car ces assemblys ne doivent pas être enregistrés à l’aide de l’instruction CREATE ASSEMBLY.

En outre, vous devez conserver ces assemblys une fois que vous mettez à niveau le Microsoft.NET Framework. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
949080 message d’erreur lorsque vous exécutez une routine du CLR ou que vous utilisez un assembly dans SQL Server : « l’Assembly dans le magasin hôte a une signature différente à un assembly dans le GAC. (Exception à partir de HRESULT : 0x80131050) »

Assemblys qui sont pris en charge dans un environnement hébergé SQL Server CLR

Les assemblys.NET Framework suivants sont pris en charge dans un environnement hébergé SQL Server CLR :
  • Microsoft.VisualBasic.dll
  • Mscorlib.dll
  • System.Data.dll
  • System.dll
  • System.Xml.dll
  • Microsoft.VisualC.dll
  • CustomMarshalers.dll
  • System.Security.dll
  • System.Web.Services.dll
  • System.Data.SqlXml.dll
  • System.Transactions.dll
  • System.Data.OracleClient.dll
  • System.Configuration.dll
Propriétés

ID d'article : 922672 - Dernière mise à jour : 17 janv. 2017 - Révision : 1

Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Express Edition with Advanced Services, Microsoft SQL Server 2005 Express Edition with Advanced Services, Microsoft SQL Server 2005 Express Edition with Advanced Services, Microsoft SQL Server 2005 Express Edition with Advanced Services, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Compact Edition

Commentaires