Как сослаться на блоки GAC при интеграции расширения CLR в SQL Server

Я создал блок для интеграции CLR в SQL Server 2008. Это имеет одну ссылку на System.Web.Extensions, который является проблемой, потому что, когда я пытаюсь добавить свой блок, я получаю следующую ошибку:

Блок 'system.web.extensions, version=3.5.0.0, culture=neutral, publickeytoken=31bf3856ad364e35'. не был найден в каталоге SQL. (Microsoft SQL Server, Ошибка: 6503)

Как я заставляю SQL Server ссылаться на требовавшую сборку?

7
задан Nathan Ridley 21 February 2010 в 01:00
поделиться

1 ответ

По-видимому, я не могу, согласно этот пост на форумах Microsoft:

Интеграция CLR в SQL Server 2005 поддерживает только подмножество библиотек .NET framework для ссылок и использования внутри SQL Server.Это:

  • CustomMarshalers
  • Microsoft.VisualBasic
  • Microsoft.VisualC
  • mscorlib
  • System
  • System.Configuration
  • System.Data
  • System.Data.OracleClient
  • System.Data.SqlXml
  • System.Deployment
  • System.Security
  • System.Transactions
  • System.Web.Services
  • System.Xml

Эти библиотеки были протестированы на надежность для запуска внутри SQL Server. На эти библиотеки можно ссылаться в любом коде, и их не нужно регистрировать с помощью CREATE ASSEMBLY. Это единственные сборки, которые SQL Server позволяет CLR загружать из GAC. Все остальные сборки (в рамках .NET Framework или иным образом) должны быть явно зарегистрированы в базе данных. Любой код, который находится за пределами этих библиотек, должен быть хорошо протестирован пользователем на надежность и безопасность.

Хотя сборки, которые вы пытаетесь зарегистрировать, не поддерживаются интеграцией CLR, вы можете использовать их, если хорошо протестируете свою функциональность. Самый простой способ зарегистрировать system.web и все его зависимости - зарегистрировать их из установочного каталога .NET framework (обычно c: \ windows \ microsoft.net \ framework \)

например:

CREATE ASSEMBLY SystemWeb из ' C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ System.Web.dll '

с permission_set = unsafe

Поскольку все зависимые сборки находятся в одном каталоге, SQL Server их автоматически зарегистрирует.

Спасибо,

-Vineet.

9
ответ дан 7 December 2019 в 03:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: