ดังที่คุณได้จดบันทึกไว้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
หรือไม่หรือมีเส้นทางอื่นที่จะทำสิ่งที่คุณต้องการให้สำเร็จ