SQL Server CLR tarafından barındırılan ortamda test edilmemiş .NET Framework derlemeleri için destek ilkesi

Bu makalede, SQL Server'daki .NET Framework ortak dil çalışma zamanı (CLR) tarafından barındırılan ortamda test edilmemiş Microsoft .NET Framework derlemeleri için destek ilkesi açıklanmaktadır.

Özgün ürün sürümü: SQL Server
Özgün KB numarası: 922672

Derleme testi ve desteği

SQL Server'da test edilmemiş bir .NET Framework derlemesine başvuran bir derlemeyi kaydettiğinizde, aşağıdaki uyarı iletisini alabilirsiniz:

Kaydettiğiniz .Net frameworks assembly AssemblyName, barındırılan SQL Server ortamda tam olarak test edilmedi.

İleti, .NET Framework derlemesinin SQL Server CLR tarafından barındırılan ortamda test edilmemiş olduğu anlamına gelir. Bu nedenle, derleme SQL Server CLR tarafından barındırılan ortamda desteklenmez.

Test edilmemiş bir .NET Framework derlemesi, yetersiz bellek durumu gibi kritik bir koşul oluştuğunda konak işleminden çıkabilir. SQL Server CLR tarafından barındırılan ortamda derlemeyi kendi riskinizle kullanabilirsiniz. Ancak SQL Server Müşteri Destek Hizmetleri (CSS), desteklenmeyen bir .NET Framework derlemesiyle ilişkili sorunları kullanmanıza ve gidermenize yardımcı olmaz. CSS, desteklenmeyen belirli bir derlemenin SQL Server sorunlara neden olduğunu belirlerse, derlemeyi kullanmayı durdurmanız istenebilir. Ayrıca, CSS gerekirse belirli bir SQL Server sorununu giderdiğinde derlemeyi geçici olarak kullanmayı durdurmanız istenebilir.

Derleme kaydı

İki tür .NET derlemesi vardır: saf ve karışık. Saf .NET derlemeleri yalnızca MSIL yönergelerini içerir. Karma derlemeler hem yönetilmeyen makine yönergelerini hem de MSIL yönergelerini içerir. Genel olarak karma derlemeler bir C++ derleyicisinde "clr" anahtarı kullanılarak derlenir ve ayrıca yerel C++ kodundan oluşturulan makine yönergelerini içerir.

Desteklenen listede olmayan bir .NET Framework derlemesi kullandığınızda, derlemeyi CREATE ASSEMBLY ve başvuruda bulunılan derlemeleri SQL Server veritabanında kaydetmek için deyimini kullanmanız gerekir. SQL Server CREATE ASSEMBLY deyimi yalnızca saf .NET Framework derlemelerinin kaydedilmesini sağlar. Derleme veya başvuruda bulunılan herhangi bir derleme saf bir .NET Framework derlemesi değilse (ve bu nedenle karma bir derlemeyse), aşağıdaki hata iletisini alırsınız:

Msg 6544, Düzey 16, Durum 1, Satır 2
'<derleme adı>' derlemesi hatalı biçimlendirilmiş veya saf bir .NET derlemesi olmadığından '<derleme adı>' derlemesi için CREATE ASSEMBLY başarısız oldu.
Tanımlanamaz PE Üst Bilgisi/yerel saplama.

Bu durumda, derleme bu makalede belgelenen desteklenen listede yer almadığı sürece .NET Framework derlemesini SQL CLR ile birlikte kullanamazsınız. Ayrıca, bir .NET Framework derlemesi, sürümler arasında saf bir bütünleştirilmiş koddan karma derlemeye değişebilir. Desteklenen listede olmayan bir derleme kullanırsanız, derlemenin .NET Framework bir sürümünde çalıştığı ancak başka bir sürümde çalışmadığı bir durumla karşı karşınıza çıkabilir. Bu derlemelerin deyimi kullanılarak CREATE ASSEMBLY kaydedilmesi gerekmediğinden, bu kısıtlama desteklenen listedeki derlemeler için geçerli değildir.

Ayrıca, .NET Framework yükseltdikten sonra bu derlemeleri korumanız gerekir. SQL Server'de bir CLR yordamı yürütürken veya derleme kullandığınızda aşağıdaki hata iletisi gösterilir:

Konak deposundaki derleme, GAC'deki derlemeden farklı bir imzaya sahiptir. (HRESULT özel durumu: 0x80131050)

SQL Server CLR tarafından barındırılan bir ortamda desteklenen derlemeler

Aşağıdaki .NET Framework derlemeleri SQL Server CLR tarafından barındırılan bir ortamda desteklenir:

  • 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