Unterstützungsrichtlinie für nicht getestete .NET Framework-Assemblys in der von SQL Server CLR gehosteten Umgebung
In diesem Artikel wird die Supportrichtlinie für nicht getestete Microsoft .NET Framework-Assemblys in der in .NET Framework common language runtime (CLR) gehosteten Umgebung in SQL Server beschrieben.
Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 922672
Assemblytests und -unterstützung
Wenn Sie eine Assembly registrieren, die auf eine nicht getestete .NET Framework-Assembly in SQL Server verweist, wird möglicherweise die folgende Warnmeldung angezeigt:
.Net Frameworks-AssemblyassemblyName, die Sie registrieren, wird in der gehosteten SQL Server-Umgebung nicht vollständig getestet.
Die Meldung bedeutet, dass die .NET Framework-Assembly in der von SQL Server CLR gehosteten Umgebung nicht getestet wurde. Daher wird die Assembly in der von SQL Server CLR gehosteten Umgebung nicht unterstützt.
Eine nicht getestete .NET Framework-Assembly kann den Hostprozess beenden, wenn eine kritische Bedingung wie eine Bedingung mit geringem Arbeitsspeicher auftritt. Sie können die Assembly in der von SQL Server CLR gehosteten Umgebung auf eigene Gefahr verwenden. SQL Server Customer Support Services (CSS) hilft Ihnen jedoch nicht, Probleme zu verwenden und zu beheben, die einer nicht unterstützten .NET Framework-Assembly zugeordnet sind. Wenn CSS feststellt, dass eine bestimmte nicht unterstützte Assembly SQL Server-Probleme verursacht, werden Sie möglicherweise aufgefordert, die Verwendung der Assembly zu beenden. Darüber hinaus werden Sie möglicherweise aufgefordert, die Verwendung der Assembly vorübergehend zu beenden, wenn CSS ein bestimmtes SQL Server-Problem behebt, wenn dies erforderlich ist.
Assemblyregistrierung
Es gibt zwei Arten von .NET-Assemblys: rein und gemischt. Reine .NET-Assemblys enthalten nur MSIL-Anweisungen. Gemischte Assemblys enthalten sowohl nicht verwaltete Computeranweisungen als auch MSIL-Anweisungen. Gemischte Assemblys werden im Allgemeinen in einem C++-Compiler mithilfe der Option "clr" kompiliert und enthalten auch Computeranweisungen, die aus systemeigenem C++-Code erstellt wurden.
Wenn Sie eine .NET Framework-Assembly verwenden, die nicht in der unterstützten Liste enthalten ist, müssen Sie die CREATE ASSEMBLY
Anweisung verwenden, um die Assembly und die referenzierten Assemblys in der SQL Server-Datenbank zu registrieren. Mit der SQL Server-Anweisung CREATE ASSEMBLY
können nur reine .NET Framework-Assemblys registriert werden. Wenn die Assembly oder eine assembly, auf die verwiesen wird, keine reine .NET Framework-Assembly ist (und daher eine gemischte Assembly ist), wird die folgende Fehlermeldung angezeigt:
Msg 6544, Ebene 16, Zustand 1, Zeile 2
Fehler beim ERSTELLEN DER ASSEMBLY für assembly "<Assemblyname>", da der Assemblyname<> falsch formatiert ist oder keine reine .NET-Assembly ist.
Nichtifiierbare PE-Kopfzeile/systemeigene Stub.
In diesem Fall können Sie die .NET Framework-Assembly nicht zusammen mit SQL CLR verwenden, es sei denn, die Assembly befindet sich in der unterstützten Liste, die in diesem Artikel dokumentiert ist. Darüber hinaus kann eine .NET Framework-Assembly von einer reinen Assembly zu einer gemischten Assembly zwischen Versionen wechseln. Wenn Sie eine Assembly verwenden, die nicht in der unterstützten Liste enthalten ist, haben Sie möglicherweise eine Situation, in der die Assembly in einer Version von .NET Framework funktioniert, aber nicht in einer anderen. Diese Einschränkung gilt nicht für die Assemblys in der unterstützten Liste, da diese Assemblys nicht mithilfe der CREATE ASSEMBLY
Anweisung registriert werden müssen.
Darüber hinaus müssen Sie diese Assemblys beibehalten, nachdem Sie das .NET Framework aktualisiert haben. Die folgende Fehlermeldung wird angezeigt, wenn Sie eine CLR-Routine ausführen oder eine Assembly in SQL Server verwenden:
Die Assembly im Hostspeicher weist eine andere Signatur als die Assembly im GAC auf. (Ausnahme von HRESULT: 0x80131050)
Assemblys, die in einer von SQL Server CLR gehosteten Umgebung unterstützt werden
Die folgenden .NET Framework-Assemblys werden in einer von SQL Server CLR gehosteten Umgebung unterstützt:
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