Поделиться через


Политика поддержки непроверенных сборок .NET Framework в среде SQL Server CLR

В этой статье описывается политика поддержки непроверенных сборок Microsoft .NET Framework в среде, размещенной в среде среды CLR .NET Framework в SQL Server.

Оригинальная версия продукта: SQL Server
Исходный номер базы знаний: 922672

Тестирование и поддержка сборки

При регистрации сборки, которая ссылается на непроверенную сборку .NET Framework в SQL Server, может появилось следующее предупреждающее сообщение:

Сборка .NET frameworks AssemblyName, регистрируемая вами, не полностью протестирована в размещенной среде SQL Server.

Сообщение означает, что сборка .NET Framework не была протестирована в среде, размещенной в СРЕДЕ SQL Server CLR. Таким образом, сборка не поддерживается в среде, размещенной в СРЕДЕ SQL Server CLR.

Непроверенная сборка .NET Framework может выйти из хост-процесса при возникновении критического состояния, например нехватки памяти. Сборку в среде, размещенной в среде СРЕДЫ CLR SQL Server, можно использовать на свой страх и риск. Однако службы поддержки клиентов SQL Server (CSS) не помогут вам использовать и устранять проблемы, связанные с неподдерживаемой сборкой .NET Framework. Если CSS определяет, что определенная неподдерживаемая сборка вызывает проблемы с SQL Server, может потребоваться прекратить использование сборки. Кроме того, вам может быть предложено временно прекратить использование сборки, когда CSS устранит определенную проблему SQL Server, если это необходимо.

Регистрация сборки

Существует два типа сборок .NET: чистые и смешанные. Чистые сборки .NET содержат только инструкции MSIL. Смешанные сборки содержат как инструкции неуправляемого компьютера, так и инструкции MSIL. Смешанные сборки в целом компилируются в компиляторе C++ с помощью параметра clr, а также содержат машинные инструкции, созданные на основе машинного кода C++.

При использовании сборки .NET Framework, которая отсутствует в списке поддерживаемых, необходимо использовать инструкцию CREATE ASSEMBLY для регистрации сборки и сборок, на которые ссылается ссылка, в базе данных SQL Server. Инструкция SQL Server CREATE ASSEMBLY позволяет регистрировать только чистые сборки .NET Framework. Если сборка или любая сборка, на которую ссылается ссылка, не является чистой сборкой .NET Framework (и, следовательно, является смешанной сборкой), вы получите следующее сообщение об ошибке:

Сообщение 6544, уровень 16, состояние 1, строка 2
Не удалось создать сборку "<имя> сборки", так как сборка "<имя> сборки" имеет неправильный формат или не является чистой сборкой .NET.
Непроверяемый заголовок PE или собственная заглушка.

В этом случае сборку .NET Framework нельзя использовать вместе со средой CLR SQL, если только сборка не находится в списке поддерживаемых платформ, описанных в этой статье. Кроме того, сборка .NET Framework может переходить от чистой сборки к смешанной сборке между версиями. При использовании сборки, которой нет в списке поддерживаемых, может возникнуть ситуация, когда сборка работает в одной версии .NET Framework, но не в другой. Это ограничение не применяется к сборкам в списке поддерживаемых, так как эти сборки не требуется регистрировать с помощью инструкции CREATE ASSEMBLY .

Кроме того, эти сборки необходимо поддерживать после обновления платформы .NET Framework. При выполнении подпрограммы CLR или использовании сборки в SQL Server отображается следующее сообщение об ошибке:

Сигнатура сборки в хранилище узлов отличается от сигнатуры сборки в GAC. (Исключение из HRESULT: 0x80131050)

Сборки, поддерживаемые средой SQL Server CLR

В среде SQL Server CLR поддерживаются следующие сборки .NET Framework:

  • 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