जैसा कि आपने नोट किया है, System.Web
एक असमर्थित पुस्तकालय है। संदर्भ के लिए System.Web
आपको कॉल करने की आवश्यकता होगी CREATE ASSEMBLY
। ऐसा लगता है कि आपने ऐसा करने की कोशिश की, लेकिन आपने स्थान का संदर्भ कैसे दिया System.Web.dll
? क्या आपने इसे किसी भिन्न स्थान पर कॉपी / पेस्ट किया था? SQL सर्वर एक ही स्थान पर निर्भर असेंबलियों का पता लगाने का प्रयास करेगा। दूसरे शब्दों में, यदि आप 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 सर्वर लोड अन्य असेंबली के सभी क्लाइंट संदेशों से देख सकते हैं। लेकिन ध्यान दें, SQL सर्वर इनमें से प्रत्येक के लिए निम्नलिखित चेतावनी प्रदर्शित करता है:
आप पंजीकृत कर रहे हैं SQL सर्वर होस्ट किए गए वातावरण में पूरी तरह से परीक्षण नहीं किया गया है और समर्थित नहीं है। भविष्य में, यदि आप इस असेंबली या .NET फ्रेमवर्क को अपग्रेड या सर्विस करते हैं, तो आपका सीएलआर इंटीग्रेशन रूटीन काम करना बंद कर सकता है। अधिक जानकारी के लिए कृपया SQL सर्वर पुस्तकें ऑनलाइन देखें।
इसी तरह, लेकिन जोड़ते हुए 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
यह वास्तव में यहां क्या हो रहा है, इसके बारे में ध्यान देने योग्य है, और भले ही अन्य अतिरिक्त असेंबली में टी-एसक्यूएल प्रवेश बिंदुओं के लिए तरीके नहीं हैं, वे अब एक निर्भरता हैं। मैं यह देखने के लिए विकल्पों को तौलना चाहूँगा कि क्या आपको वास्तव में संदर्भ देने की आवश्यकता हैSystem.Web
, या यदि आप चाहते हैं तो पूरा करने के लिए कोई अन्य मार्ग है।