Nat*_*ley 7 sql-server clr gac
我在SQL Server 2008中为CLR集成创建了一个程序集.它有一个引用System.Web.Extensions,这是一个问题,因为当我尝试添加我的程序集时,我收到以下错误:
程序集'system.web.extensions,version = 3.5.0.0,culture = neutral,publickeytoken = 31bf3856ad364e35.' 在SQL目录中找不到.(Microsoft SQL Server,错误:6503)
如何让SQL Server引用所需的程序集?
显然我不能,根据微软论坛上的这篇帖子:
SQL Server 2005中的CLR集成仅支持.NET框架库的一个子集作为SQL Server内部的引用和使用.这些是:
- CustomMarshalers
- Microsoft.VisualBasic程序
- Microsoft.VisualC
- mscorlib程序
- 系统
- 系统配置
- System.Data
- System.Data.OracleClient的
- System.Data.SqlXml
- System.Deployment
- System.Security
- System.Transactions的
- System.Web.Services
- 的System.Xml
这些库已经过测试,以确保它们在SQL Server中运行是可靠的.可以在任何代码中引用这些库,而不必使用CREATE ASSEMBLY进行注册.这些是SQL Server允许CLR从GAC加载的唯一程序集.所有其他程序集(在.NET框架内或其他方面)需要在数据库中显式注册.为了可靠性和安全性,用户应该很好地测试这些库之外的任何代码.
虽然CLR集成不支持您尝试注册的程序集,但如果您很好地测试功能,则可以使用它们.注册system.web及其所有依赖项的简单方法是从.NET框架安装目录(通常是c:\ windows\microsoft.net\framework \)注册它们
例如:
从'C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.dll'创建汇编SystemWeb
with permission_set = unsafe
由于所有依赖程序集都在同一目录中,因此SQL Server会自动注册它们.
谢谢,
-Vineet.