Как получить доступ к классу .NET TimeZoneInfo из SQL Server 2005? - PullRequest
2 голосов
/ 13 марта 2009

Класс TimeZoneInfo имеет атрибут защиты хоста MayLeakOnAbort.

Это, кажется, мешает мне получить к нему доступ из CLR SQL Server. Но есть ли обходной путь?

Ответы [ 2 ]

2 голосов
/ 13 марта 2009

Да, конечно. Вы инкапсулируете его в другой класс .NET, а затем ссылаетесь на свою сборку .NET в SQL Server. Затем вы полностью отключите защиту в своей базе данных SQL Server, чтобы запустить второй класс.

Если это не сработает, вы можете создать оболочку COM, а затем оболочку Interop и все еще уничтожить безопасность в SQL Server для запуска этой вещи.

Теперь, если безопасность действительно имеет для вас значение, вы можете создать службу WCF, которая упаковывает нужные вам биты, и использовать ее в качестве службы из своего кода SQL. Это немного задержка и не может работать против объектов в SQL Server, по сути, но это чище.

Извините за странно звучащий ответ, но сейчас я нахожусь в странном настроении. : -)

0 голосов
/ 19 марта 2010

Разверните процедуру CLR как небезопасную:

Щелкните правой кнопкой мыши проект в Visual Studio> Свойства> вкладка База данных> Уровень разрешений

Затем для его развертывания необходимо настроить базу данных, чтобы она принимала небезопасные сборки. Два варианта:

владелец базы данных (DBO) имеет БЕЗОПАСНОЕ СБОРНОЕ разрешение и база данных имеет базу данных TRUSTWORTHY собственность на;

... или сборка подписана с сертификатом или асимметричным ключ с соответствующим логином с небезопасной сборкой разрешение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...