Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我无法在SQL CLR 2012中使用WCF_Sql_Sql Server_Wcf_Clr_Sqlclr - Fatal编程技术网

我无法在SQL CLR 2012中使用WCF

我无法在SQL CLR 2012中使用WCF,sql,sql-server,wcf,clr,sqlclr,Sql,Sql Server,Wcf,Clr,Sqlclr,将我的程序集添加到SQL Server 2012时,依赖项将在system.servicemodel中绘制,该依赖项将在microsoft.visualbasic.activities.compiler中绘制,并导致以下错误: CREATE ASSEMBLY for assembly '<assembly name>' failed because assembly 'microsoft.visualbasic.activities.compiler' is malformed or

将我的程序集添加到SQL Server 2012时,依赖项将在
system.servicemodel
中绘制,该依赖项将在
microsoft.visualbasic.activities.compiler
中绘制,并导致以下错误:

CREATE ASSEMBLY for assembly '<assembly name>' failed because assembly 'microsoft.visualbasic.activities.compiler' is malformed or not a pure .NET assembly. 
Unverifiable PE Header/native stub.
为程序集“”创建程序集失败,因为程序集“microsoft.visualbasic.activities.compiler”的格式不正确或不是纯.NET程序集。
无法验证的PE头/本机存根。
似乎无法将WCF DLL添加到SQL Server 2012


有解决办法吗?SQL Server 2014中是否已修复此问题?

否,出于安全原因,SQL Server只允许C#的一个相当有限的子集
例如,添加对System.Web的引用就足以使其无法工作

也许您可以从mono源代码中剥离所需的System.ServiceModel部分,并使其以这种方式工作。幸运的是,如果您只需要一个或两个函数调用,那么只需做一些更改就可以让它工作

另请注意:如果您可以在CLR存储过程中添加WCF,则可以使SQLExpress使用HTTP端点。但是SQLServerExpress的定义限制之一是,Express版本不允许这样做。如果这是可能的,你可以绕过这个限制,微软当然不希望这样

另请参见此帖子:

您能否向我们中的一些人解释一下,您喜欢一个像样的体系结构,为什么会想到在数据库后端运行WCF?同意@TomTom的说法,这似乎是一个非常糟糕的主意。带有脚本任务的SSI是向WCF服务发送数据或从WCF服务发送数据的一种简单方法。我实际上不想使用WCF,但system.servicemodel中有一些依赖项。我希望避免将这些依赖项分解出来,因为这是一个相当大的项目,但这可能是我们要做的。从架构上来说,它也会更干净。您是否知道SQL Server 2014中是否修复了此问题?修复了什么?他们允许一种完全不可靠的方法,甚至没有一个尊重数据库的人会尝试这种方法?当然不是。@Oszkar:正如我所说的:不,这不是一个bug,因此它没有被修复。