Unterstützungsrichtlinie für nicht getestete .NET Framework assemblys in der SQL Server CLR-gehosteten Umgebung

In diesem Artikel wird die Supportrichtlinie für nicht getestete Microsoft .NET Framework-Assemblys in der .NET Framework gehosteten ClR-Umgebung (Common Language Runtime) 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:

Die .NET Frameworks-Assembly AssemblyName, die Sie registrieren, ist in SQL Server gehosteten Umgebung nicht vollständig getestet.

Die Meldung bedeutet, dass die .NET Framework Assembly nicht in der SQL Server clr-gehosteten Umgebung getestet wurde. Daher wird die Assembly in der SQL Server CLR-gehosteten Umgebung nicht unterstützt.

Eine nicht getestete .NET Framework Assembly kann ihren Hostprozess beenden, wenn eine kritische Bedingung auftritt, z. B. eine Bedingung mit wenig Arbeitsspeicher. Sie können die Assembly auf eigenes Risiko in der SQL Server CLR-gehosteten Umgebung verwenden. SQL Server Customer Support Services (CSS) hilft Ihnen jedoch nicht bei der Verwendung und Behandlung von Problemen, die mit einer nicht unterstützten .NET Framework-Assembly verbunden sind. Wenn CSS feststellt, dass eine bestimmte nicht unterstützte Assembly SQL Server Probleme verursacht, werden Sie möglicherweise aufgefordert, die Assembly nicht mehr zu verwenden. Darüber hinaus werden Sie möglicherweise aufgefordert, die Assembly vorübergehend zu beenden, wenn CSS ein bestimmtes SQL Server Problem behandelt, 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 Anweisungen für nicht verwaltete Computer als auch MSIL-Anweisungen. Gemischte Assemblys werden im Allgemeinen mithilfe des Schalters "clr" in einem C++-Compiler kompiliert und enthalten auch Computeranweisungen, die aus nativem C++-Code erstellt wurden.

Wenn Sie eine .NET Framework Assembly verwenden, die nicht in der Liste unterstützt wird, müssen Sie die CREATE ASSEMBLY -Anweisung verwenden, um die Assembly und die Assemblys, auf die verwiesen wird, in 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), erhalten Sie die folgende Fehlermeldung:

Msg 6544, Ebene 16, Status 1, Zeile 2
Fehler bei CREATE ASSEMBLY für Assemblyname<>, weil assembly "<Assemblyname>" falsch formatiert ist oder keine reine .NET-Assembly ist.
Nicht überprüfbarer PE-Header/nativer 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 liste der unterstützten Elemente, die in diesem Artikel dokumentiert ist. Darüber hinaus kann eine .NET Framework Assembly von einer reinen Assembly in eine gemischte Assembly zwischen Versionen wechseln. Wenn Sie eine Assembly verwenden, die nicht in der Liste unterstützt wird, kann es vorkommen, dass die Assembly in einer Version des .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 nach dem Upgrade des .NET Framework verwalten. 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 auf als die Assembly in GAC. (Ausnahme von HRESULT: 0x80131050)

Assemblys, die in einer SQL Server clr-gehosteten Umgebung unterstützt werden

Die folgenden .NET Framework-Assemblys werden in einer 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