我无法在SQL CLR 2012中使用WCF
将我的程序集添加到SQL Server 2012时,依赖项将在我无法在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
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,因此它没有被修复。