Як ви вже зазначали, System.Web
це непідтримувана бібліотека. Для посилання System.Web
вам потрібно зателефонувати CREATE ASSEMBLY
. Здається, ви намагалися це зробити, але як ви вказали місце розташування System.Web.dll
? Ви скопіювали / вставили його в інше місце? SQL Server намагатиметься знайти залежні збірки в одному місці. Іншими словами, якщо ви посилаєтесь на розташування System.Web.dll
всіх інших залежних бібліотек, що живуть у тому самому каталозі, це повинно працювати добре. Ось робочий приклад. Я зміг додати як System.Web
збірку, так і вашу збірку:
create assembly [System.Web]
from 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Web.dll'
with permission_set = unsafe;
go
create assembly SystemWebTest
from 'c:\SqlServer\SystemWebTest.dll'
with permission_set = safe;
go
Ви можете побачити з клієнтських повідомлень усі інші збірки, які завантажує SQL Server. Але зауважте, SQL Server відображає таке попередження для кожного з них:
ви реєструєтеся не повністю перевірені в середовищі розміщення SQL Server і не підтримуються. Надалі, якщо ви оновите або обслуговуєте цю збірку або .NET Framework, ваша програма інтеграції CLR може припинити роботу. Для отримання детальної інформації зверніться до книг SQL Server Books Online.
Аналогічно, але додаючи System.Web
, подивіться на наступні складання, які додаються:
select
name,
permission_set_desc,
is_visible
from sys.assemblies
where is_user_defined = 1
order by is_visible desc;
name permission_set_desc is_visible
System.Web UNSAFE_ACCESS 1
SystemWebTest SAFE_ACCESS 1
Microsoft.Build.Framework UNSAFE_ACCESS 0
System.Xaml UNSAFE_ACCESS 0
System.ComponentModel.DataAnnotations UNSAFE_ACCESS 0
System.Runtime.Caching UNSAFE_ACCESS 0
System.Web.ApplicationServices UNSAFE_ACCESS 0
System.Drawing UNSAFE_ACCESS 0
Microsoft.Build.Utilities.v4.0 UNSAFE_ACCESS 0
System.DirectoryServices UNSAFE_ACCESS 0
System.DirectoryServices.Protocols UNSAFE_ACCESS 0
System.EnterpriseServices UNSAFE_ACCESS 0
System.Runtime.Remoting UNSAFE_ACCESS 0
System.Runtime.Serialization.Formatters.Soap UNSAFE_ACCESS 0
System.Design UNSAFE_ACCESS 0
System.Windows.Forms UNSAFE_ACCESS 0
Accessibility UNSAFE_ACCESS 0
System.Drawing.Design UNSAFE_ACCESS 0
System.Web.RegularExpressions UNSAFE_ACCESS 0
Microsoft.Build.Tasks.v4.0 UNSAFE_ACCESS 0
System.ServiceProcess UNSAFE_ACCESS 0
System.Configuration.Install UNSAFE_ACCESS 0
System.Runtime.Serialization UNSAFE_ACCESS 0
System.ServiceModel.Internals UNSAFE_ACCESS 0
SMDiagnostics UNSAFE_ACCESS 0
Варто пам’ятати про те, що насправді відбувається тут, і хоча інші додаткові збірки не мають способів для вхідних точок T-SQL, вони тепер залежність. Я зважую варіанти, щоб побачити, чи справдіSystem.Web
вам потрібно посилатись , чи є інший маршрут для досягнення того, що ви хочете.