Compartir a través de


Directiva de compatibilidad con ensamblados de .NET Framework no probados en el entorno hospedado en CLR de SQL Server

En este artículo se describe la directiva de compatibilidad para ensamblados de Microsoft .NET Framework no probados en el entorno hospedado en Common Language Runtime (CLR) de .NET Framework en SQL Server.

Versión del producto original: SQL Server
Número de KB original: 922672

Pruebas y soporte técnico de ensamblados

Al registrar un ensamblado que hace referencia a un ensamblado de .NET Framework no probado en SQL Server, puede recibir el siguiente mensaje de advertencia:

El ensamblado de .Net Frameworks AssemblyName que está registrando no se prueba completamente en el entorno hospedado de SQL Server.

El mensaje significa que el ensamblado de .NET Framework no se ha probado en el entorno hospedado en CLR de SQL Server. Por lo tanto, el ensamblado no se admite en el entorno hospedado en CLR de SQL Server.

Un ensamblado de .NET Framework no probado puede salir del proceso de host cuando se produce una condición crítica, como una condición de memoria baja. Puede usar el ensamblado en el entorno hospedado en CLR de SQL Server en su propio riesgo. Sin embargo, los Servicios de soporte al cliente (CSS) de SQL Server no le ayudarán a usar ni solucionar problemas asociados a un ensamblado de .NET Framework no compatible. Si CSS determina que un ensamblado no admitido determinado provoca problemas de SQL Server, es posible que se le pida que deje de usar el ensamblado. Además, es posible que se le pida que deje de usar el ensamblado temporalmente cuando CSS solucione un problema determinado de SQL Server si es necesario.

Registro de ensamblados

Hay dos tipos de ensamblados de .NET: puros y mixtos. Los ensamblados .NET puros solo contienen instrucciones MSIL. Los ensamblados mixtos contienen instrucciones de máquina no administradas e instrucciones de MSIL. Los ensamblados mixtos en general se compilan en un compilador de C++ mediante el modificador "clr" y también contienen instrucciones de máquina compiladas a partir del código nativo de C++.

Cuando se usa un ensamblado de .NET Framework que no está en la lista admitida, debe usar la CREATE ASSEMBLY instrucción para registrar el ensamblado y los ensamblados a los que se hace referencia en la base de datos de SQL Server. La instrucción SQL Server CREATE ASSEMBLY solo permite registrar ensamblados de .NET Framework puros. Si el ensamblado o cualquier ensamblado al que se hace referencia no es un ensamblado de .NET Framework puro (y, por lo tanto, es un ensamblado mixto), recibirá el siguiente mensaje de error:

Mensaje 6544, nivel 16, estado 1, línea 2
Error en CREATE ASSEMBLY para el ensamblado "<nombre> del ensamblado" porque el ensamblado "<nombre> del ensamblado" tiene un formato incorrecto o no es un ensamblado de .NET puro.
Encabezado PE no verificable/código auxiliar nativo.

En este caso, no puede usar el ensamblado de .NET Framework junto con SQL CLR a menos que el ensamblado esté en la lista admitida que se documenta en este artículo. Además, un ensamblado de .NET Framework puede cambiar de un ensamblado puro a un ensamblado mixto entre versiones. Si usa un ensamblado que no está en la lista admitida, es posible que tenga una situación en la que el ensamblado funcione en una versión de .NET Framework, pero no en otra. Esta restricción no se aplica a los ensamblados de la lista admitida porque estos ensamblados no son necesarios para registrarse mediante la CREATE ASSEMBLY instrucción .

Además, debe mantener estos ensamblados después de actualizar .NET Framework. El siguiente mensaje de error se muestra cuando se ejecuta una rutina CLR o se usa un ensamblado en SQL Server:

El ensamblado del almacén de host tiene una signatura diferente a la del ensamblado de GAC. (Excepción de HRESULT: 0x80131050)

Ensamblados que se admiten en un entorno hospedado en CLR de SQL Server

Los siguientes ensamblados de .NET Framework se admiten en un entorno hospedado en CLR de SQL Server:

  • 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