Sql server 在Visual Studio 2015中构建SQL CLR项目

Sql server 在Visual Studio 2015中构建SQL CLR项目,sql-server,sqlclr,Sql Server,Sqlclr,我试图在Visual Studio 2015中构建SQL CLR项目,并调用一个wcf服务,该服务的目标是System.Runtime.Serialization.dll。为了克服这一问题,我在识别正确的.NET目标版本时遇到了问题 sql版本为: name value directory C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ version v4.0.30319 state CLR is init

我试图在Visual Studio 2015中构建SQL CLR项目,并调用一个wcf服务,该服务的目标是System.Runtime.Serialization.dll。为了克服这一问题,我在识别正确的.NET目标版本时遇到了问题

sql版本为:

name        value
directory   C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
version     v4.0.30319
state       CLR is initialized
我试图根据.NET版本4构建CLR

SQL拒绝安装System.Runtime.Serialization.dll如果我根据.NET 3.5版进行构建,我会

Msg 6586,16级,状态1,第8行 无法安装程序集“System.Runtime.Serialization”,因为现有策略将阻止使用该程序集


为了克服这一问题,我应该基于哪个版本进行构建?

SQL Server 2012及更高版本使用CLR 4.0,而CLR 4.0又与.NET Framework 4.0及更高版本相关联。您不能在SQL Server 2012或更高版本中使用任何.NET 2.0、3.0或3.5库

System.Runtime.Serialization不在列表中,因此您需要手动加载它,并将其视为不安全。但是,如果该DLL是混合模式,而不是纯MSIL,则不会加载它,因为SQL Server的CLR主机仅适用于纯MSIL库。我发现最好只使用HttpWebRequest,手动构建请求XML并手动解析响应XML

过去,ServiceModel DLL是纯MSIL,在SQL Server 2008 R2中工作SQL Server 2005、2008和2008 R2与CLR 2.0绑定,但后来Microsoft在CLR 4.0中将该DLL更改为混合模式,所有在2008 R2中运行WebService SQLCLR的人在升级到SQL Server 2012或更新版本时都停止了工作。使用HttpWebRequest与经批准的库配合使用,该库保证在.NET Framework的升级过程中始终有效

关于这些问题,这里已经有许多问题。我将尝试找到一些,并更新其中一些


另外,仅供参考,问题中显示的输出似乎是执行以下操作的结果:SELECT*FROM sys.dm_clr_properties;。请注意,显示的版本虽然通常被称为框架版本,但实际上只是CLR版本,这两个版本并不相同。

首先。。。您确定需要CLR吗?它曾经风靡一时,但后来每个人都克服了。嗨,作为首选,我只想在IIS上部署一个wcf服务,但我不是老板!您正在运行哪个SQL Server版本?您好,尼尔,Microsoft SQL Server 2014-12.0.2269.0 X64 2015年6月10日03:35:45版权所有c Microsoft Corporation Standard Edition 64位Windows NT 6.3 Build 16299:虚拟机监控程序实际上,我的问题是,关于哪个SQL版本是模拟版本,System.Runtime.Serialization.dll是无法安装在SQL Server上的程序集之一。为什么数据库中有wcf服务,不能直接通过http或套接字连接?所罗门说了什么!:嗨,谢谢你的回答,我会尽力听从你的建议。