Попытка создать хранимую процедуру из библиотеки DLL, которую я построил для использования с SQL с использованием интеграции CLR.Я думаю, что мне нужна подписанная версия System.Net.Http и объяснить, почему ниже.Буду признателен за любые советы или советы.
Решение работает на 100%, если я использую команду
ALTER DATABASE test2 SET TRUSTWORTHY ON
Затем я создаю сборку, используя следующие команды
CREATE ASSEMBLY [System.Net.Http]
AUTHORIZATION dbo
FROM 'C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Net.Http\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll'
WITH PERMISSION_SET = UNSAFE;
GO
CREATE ASSEMBLY [CLRTest01]
AUTHORIZATION dbo
FROM 'C:\Windows\CLRTest01.dll'
WITH PERMISSION_SET = UNSAFE;
GO
Поскольку я предпочитаю доверять настройкам по умолчанию, я хотел бы иметь возможность сделать это без использования уровня разрешений «UNSAFE» и вместо этого использовать «SAFE».Однако, когда я пытаюсь сделать это для CLRTest01, который зависит от System.Net.Http, я сталкиваюсь с проблемой того, что мой System.Net.Http не подписан или имеет неправильный формат, кажется.
CREATE ASSEMBLY [System.Net.Http]
AUTHORIZATION dbo
FROM 'C:\Windows\System.Net.Http.dll'
WITH PERMISSION_SET = SAFE;
GO
Ошибка при использовании v4.0_2.0.0.0__b03f5f7f11d50a3a - сборка «System.Net.Http» не может быть установлена, поскольку существующая политика не позволит использовать ее.
Ошибка при использовании v4.0_4.0.0.0__b03f5f7f11d50a3a- Не удалось создать CREATE ASSEMBLY, поскольку тип «System.Net.Http.HttpContent» в безопасной сборке «System.Net.Http» имеет статическое поле «EncodingsWithBom».Атрибуты статических полей в безопасных сборках должны быть помечены только для чтения в Visual C #, ReadOnly в Visual Basic или initonly в Visual C ++ и промежуточном языке.
Что заставляет меня думать, что мне нужна подписанная версия System.Net.Http .