Criteri di supporto per assembly .NET Framework non testati nell'ambiente SQL Server ospitato da CLR

Questo articolo descrive i criteri di supporto per gli assembly Microsoft .NET Framework non testati nell'ambiente ospitato clr (Common Language Runtime) di .NET Framework in SQL Server.

Versione originale del prodotto: SQL Server
Numero KB originale: 922672

Test e supporto degli assembly

Quando si registra un assembly che fa riferimento a un assembly .NET Framework non testato in SQL Server, è possibile che venga visualizzato il messaggio di avviso seguente:

AssemblyName dell'assembly .Net Frameworks che si sta registrando non viene testato completamente in SQL Server ambiente ospitato.

Il messaggio indica che l'assembly .NET Framework non è stato testato nell'ambiente SQL Server ospitato da CLR. Pertanto, l'assembly non è supportato nell'ambiente SQL Server ospitato da CLR.

Un assembly .NET Framework non testato può uscire dal processo host quando si verifica una condizione critica, ad esempio una condizione di memoria insufficiente. È possibile usare l'assembly nell'ambiente SQL Server ospitato da CLR a proprio rischio. Tuttavia, SQL Server Customer Support Services (CSS) non consente di usare e risolvere i problemi associati a un assembly .NET Framework non supportato. Se CSS determina che un particolare assembly non supportato causa SQL Server problemi, potrebbe essere richiesto di interrompere l'uso dell'assembly. Inoltre, potrebbe essere richiesto di interrompere temporaneamente l'uso dell'assembly quando CSS risolve un particolare problema SQL Server, se necessario.

Registrazione assembly

Esistono due tipi di assembly .NET: puro e misto. Gli assembly .NET puri contengono solo istruzioni MSIL. Gli assembly misti contengono istruzioni del computer non gestite e istruzioni MSIL. Gli assembly misti in generale vengono compilati in un compilatore C++ usando l'opzione "clr" e contengono anche istruzioni del computer compilate dal codice C++ nativo.

Quando si usa un assembly .NET Framework non incluso nell'elenco supportato, è necessario usare l'istruzione CREATE ASSEMBLY per registrare l'assembly e gli assembly a cui si fa riferimento all'interno di SQL Server database. L'istruzione SQL Server CREATE ASSEMBLY consente di registrare solo assembly .NET Framework puri. Se l'assembly o qualsiasi assembly a cui si fa riferimento non è un assembly .NET Framework puro (e, pertanto, è un assembly misto), viene visualizzato il messaggio di errore seguente:

Msg 6544, Livello 16, Stato 1, Riga 2
CREATE ASSEMBLY per l'assembly '<nome> assembly' non riuscito perché l'assembly '<nome> assembly' non è valido o non è un assembly .NET puro.
Intestazione PE non verificabile/stub nativo.

In questo caso, non è possibile usare l'assembly .NET Framework insieme a CLR SQL a meno che l'assembly non sia incluso nell'elenco supportato documentato in questo articolo. Inoltre, un assembly .NET Framework può passare da un assembly puro a un assembly misto tra le versioni. Se si usa un assembly non incluso nell'elenco supportato, potrebbe verificarsi una situazione in cui l'assembly funziona in una versione di .NET Framework ma non in un'altra. Questa restrizione non si applica agli assembly nell'elenco supportato perché questi assembly non devono essere registrati tramite l'istruzione CREATE ASSEMBLY .

È inoltre necessario mantenere questi assembly dopo l'aggiornamento di .NET Framework. Il messaggio di errore seguente viene visualizzato quando si esegue una routine CLR o si usa un assembly in SQL Server:

L'assembly nell'archivio host ha una firma diversa rispetto all'assembly nella GAC. (Eccezione da HRESULT: 0x80131050)

Assembly supportati in un ambiente SQL Server ospitato da CLR

Gli assembly .NET Framework seguenti sono supportati in un ambiente SQL Server ospitato da 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