Política de suporte para assemblies do .NET Framework não testados no ambiente hospedado pelo SQL Server CLR
Este artigo descreve a política de suporte para assemblies não testados do Microsoft .NET Framework no ambiente hospedado pelo CLR (Common Language Runtime) do .NET Framework no SQL Server.
Versão original do produto: SQL Server
Número original do KB: 922672
Teste e suporte de montagem
Ao registrar um assembly que faz referência a um assembly do .NET Framework não testado no SQL Server, você pode receber a seguinte mensagem de aviso:
O assembly do .Net Frameworks AssemblyName que você está registrando não é totalmente testado no ambiente hospedado do SQL Server.
A mensagem significa que o assembly do .NET Framework não foi testado no ambiente hospedado pelo SQL Server CLR. Portanto, não há suporte para o assembly no ambiente hospedado pelo SQL Server CLR.
Um assembly do .NET Framework não testado pode sair do processo de host quando ocorre uma condição crítica, como uma condição de memória insuficiente. Você pode usar o assembly no ambiente hospedado pelo SQL Server CLR por sua conta e risco. No entanto, o CSS (Serviços de Atendimento ao Cliente) do SQL Server não ajudará você a usar e solucionar problemas associados a um assembly do .NET Framework sem suporte. Se o CSS determinar que um assembly sem suporte específico causa problemas no SQL Server, você poderá ser solicitado a parar de usar o assembly. Além disso, você pode ser solicitado a parar de usar o assembly temporariamente quando o CSS solucionar um problema específico do SQL Server, se necessário.
Registro do assembly
Há dois tipos de assemblies .NET: puros e mistos. Os assemblies .NET puros contêm apenas instruções MSIL. Os assemblies mistos contêm instruções de computador não gerenciadas e instruções MSIL. Assemblies mistos em geral são compilados em um compilador C++ usando a opção "clr" e também contêm instruções de computador criadas a partir de código C++ nativo.
Quando você usa um assembly .NET Framework que não está na lista com suporte, é necessário usar a CREATE ASSEMBLY
instrução para registrar o assembly e os assemblies referenciados no banco de dados SQL Server. A instrução do SQL Server CREATE ASSEMBLY
permite que apenas assemblies puros do .NET Framework sejam registrados. Se o assembly ou qualquer assembly referenciado não for um assembly puro do .NET Framework (e, portanto, for um assembly misto), você receberá a seguinte mensagem de erro:
Msg 6544, Nível 16, Estado 1, Linha 2
CREATE ASSEMBLY para o assembly '<assembly name>' falhou porque o assembly '<assembly name>' está malformado ou não é um assembly .NET puro.
Cabeçalho PE não verificável/esboço nativo.
Nesse caso, você não pode usar o assembly do .NET Framework junto com o SQL CLR, a menos que o assembly esteja na lista com suporte documentada neste artigo. Além disso, um assembly do .NET Framework pode mudar de um assembly puro para um assembly misto entre versões. Se você usar um assembly que não está na lista com suporte, poderá ter uma situação em que o assembly funciona em uma versão do .NET Framework, mas não em outra. Essa restrição não se aplica aos assemblies na lista com suporte porque esses assemblies não precisam ser registrados usando a CREATE ASSEMBLY
instrução.
Além disso, você deve manter esses assemblies depois de atualizar o .NET Framework. A seguinte mensagem de erro é mostrada quando você executa uma rotina CLR ou usa um assembly no SQL Server:
O assembly no repositório do host tem uma assinatura diferente daquela do assembly no GAC. (Exceção de HRESULT: 0x80131050)
Assemblies com suporte em um ambiente hospedado pelo SQL Server CLR
Os seguintes assemblies do .NET Framework têm suporte em um ambiente hospedado pelo 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