无法执行在SQLCLR中创建的存储过程

时间:2015-03-15 12:23:29

标签: sql sql-server sql-server-2008 visual-studio-2012 sqlclr

我在SQLCLR(SQL Server数据库项目,VS2012)中创建了一个存储过程。我成功地将存储过程发布到数据库。但是当我在数据库中运行存储过程时,我收到错误。

  

无法加载动态生成的序列化程序集。在某些托管环境中,组件加载功能受到限制,请考虑使用预生成的序列化程序。有关详细信息,请参阅内部异常。

注意:发布后,不会创建xmlserializer.dll。甚至生成序列化程序集也设置为ON。

1 个答案:

答案 0 :(得分:1)

您是在SQLCLR程序集(或其他一些Web服务客户端)中使用WCF吗?

如果是这样,您需要使用the XML Serializer Generator tool手动创建序列化程序集,然后将其与原始程序集一起添加到SQL Server。

上面的链接中有更详细的说明,但您需要的命令(可以作为项目的后期构建步骤添加)有以下几点:

"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sgen.exe" /force "$(TargetPath)"

然后在SQL Server中:

CREATE ASSEMBLY [(ProjectName).XmlSerializers.dll] from '(ProjectName).XmlSerializers.dll'

有关sgen的更多详细信息,请here