CREATE ASSEMBLY [xxxx] from 'my dll path '
WITH PERMISSION_SET = UNSAFE;
,但我得到一个错误:
System.Web程序,版本= 4.0.0.0没有发现
为什么我需要.net框架的DLL?我不明白。
sql服务器安装.net框架。
CREATE ASSEMBLY [xxxx] from 'my dll path '
WITH PERMISSION_SET = UNSAFE;
,但我得到一个错误:
System.Web程序,版本= 4.0.0.0没有发现
为什么我需要.net框架的DLL?我不明白。
sql服务器安装.net框架。
SQL Server的内部CLR主机(即SQLCLR)是一个高度受限制的环境。它不像使用操作系统的CLR主机(即控制台应用程序和Windows /桌面应用程序,这是大多数程序员习惯的),更接近于创建一个Web应用程序,其中有共享资源并且不用于诸如UI之类的事物功能。 SQL Server的CLR中包含一个简短的库列表:Supported .NET Framework Libraries。其他.NET Framework库(如System.Web
)需要手动加载,如果它们可以加载的话。通常最好避免这样的事情,因为这样做时你可能容易陷入困境。有关通常使用SQLCLR的更多信息,请参阅我在SQL Server Central上关于此主题撰写的一系列文章(需要免费注册以阅读该站点上的内容):Stairway to SQLCLR。
在你的情况,如果你需要连接到一个网页或Web服务,您最好使用HttpWebRequest
和HttpWebResponse
,因为它们包含在支持的图书馆,只需要EXTERNAL_ACCESS
而不是UNSAFE
。
谢谢你,现在我很清楚 – Ian
'CREATE ASSEMBLY'创建一个数据库对象来存放一个** .NET **程序集 - 因此,当然,您确实需要SQL Server内置的.NET框架。但是,SQL CLR不会包含'System.Web'程序集,它主要包含基于Web窗体的GUI控件 - 实际上,您在SQL Server代码中将不需要任何东西。但正如错误所指出的那样 - 你试图进入SQL Server的程序集显然*不会引用'System.Web'的依赖关系 - 摆脱它并且你应该没问题 –
谢谢,我现在很清楚 – Ian