Ondersteuningsbeleid voor niet-geteste .NET Framework-assembly's in de door SQL Server CLR gehoste omgeving

In dit artikel wordt het ondersteuningsbeleid beschreven voor niet-geteste Microsoft .NET Framework-assembly's in de door .NET Framework common language runtime (CLR) gehoste omgeving in SQL Server.

Oorspronkelijke productversie: SQL Server
Oorspronkelijk KB-nummer: 922672

Assembly testen en ondersteuning

Wanneer u een assembly registreert die verwijst naar een niet-geteste .NET Framework-assembly in SQL Server, ontvangt u mogelijk het volgende waarschuwingsbericht:

AssemblyName van .Net Frameworks die u registreert, is niet volledig getest in de gehoste SQL Server-omgeving.

Het bericht betekent dat de .NET Framework-assembly niet is getest in de door SQL Server CLR gehoste omgeving. Daarom wordt de assembly niet ondersteund in de door SQL Server CLR gehoste omgeving.

Een niet-geteste .NET Framework-assembly kan het hostproces afsluiten wanneer een kritieke voorwaarde, zoals een voorwaarde met weinig geheugen, optreedt. U kunt de assembly in de door SQL Server CLR gehoste omgeving op eigen risico gebruiken. Sql Server Customer Support Services (CSS) helpt u echter niet om problemen te gebruiken en op te lossen die zijn gekoppeld aan een niet-ondersteunde .NET Framework-assembly. Als CSS bepaalt dat een bepaalde niet-ondersteunde assembly SQL Server-problemen veroorzaakt, wordt u mogelijk gevraagd de assembly niet meer te gebruiken. Bovendien wordt u mogelijk gevraagd om de assembly tijdelijk niet meer te gebruiken wanneer CSS een bepaald SQL Server-probleem oplost als dit nodig is.

Assembly-registratie

Er zijn twee soorten .NET-assembly's: puur en gemengd. Pure .NET-assembly's bevatten alleen MSIL-instructies. Gemengde assembly's bevatten zowel onbeheerde machine-instructies als MSIL-instructies. Gemengde assembly's in het algemeen worden gecompileerd in een C++-compiler met behulp van de 'clr'-switch en bevatten ook machine-instructies die zijn gebouwd op basis van systeemeigen C++-code.

Wanneer u een .NET Framework-assembly gebruikt die niet in de ondersteunde lijst staat, moet u de instructie gebruiken om de CREATE ASSEMBLY assembly en de assembly's te registreren in de SQL Server-database. Met de SQL Server-instructie CREATE ASSEMBLY kunnen alleen pure .NET Framework-assembly's worden geregistreerd. Als de assembly of een assembly waarnaar wordt verwezen geen pure .NET Framework-assembly is (en daarom een gemengde assembly is), ontvangt u het volgende foutbericht:

Msg 6544, Niveau 16, Staat 1, Regel 2
CREATE ASSEMBLY voor assembly '<assembly name>' is mislukt omdat assembly '<assembly name>' ongeldig is of niet een pure .NET-assembly.
Onverwerkbare PE-header/systeemeigen stub.

In dit geval kunt u de .NET Framework-assembly niet samen met SQL CLR gebruiken, tenzij de assembly in de ondersteunde lijst staat die in dit artikel wordt beschreven. Daarnaast kan een .NET Framework-assembly veranderen van een pure assembly in een gemengde assembly tussen versies. Als u een assembly gebruikt die niet in de ondersteunde lijst staat, hebt u mogelijk een situatie waarin de assembly werkt in één versie van .NET Framework, maar niet in een andere. Deze beperking is niet van toepassing op de assembly's in de ondersteunde lijst, omdat deze assembly's niet hoeven te worden geregistreerd met behulp van de CREATE ASSEMBLY instructie.

Bovendien moet u deze assembly's onderhouden nadat u het .NET Framework hebt bijgewerkt. Het volgende foutbericht wordt weergegeven wanneer u een CLR-routine uitvoert of een assembly gebruikt in SQL Server:

Assembly in hoststore heeft een andere handtekening dan assembly in GAC. (Uitzondering van HRESULT: 0x80131050)

Assembly's die worden ondersteund in een door SQL Server CLR gehoste omgeving

De volgende .NET Framework-assembly's worden ondersteund in een door SQL Server CLR gehoste omgeving:

  • 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