调用Web服务的SQL CLR存储过程接收System.Net.WebException:请求失败,HTTP状态为415:不支持的媒体类型

调用Web服务的SQL CLR存储过程接收System.Net.WebException:请求失败,HTTP状态为415:不支持的媒体类型,sql,clr,system.net.webexception,Sql,Clr,System.net.webexception,我在Visual Studio 2012(目标框架:3.5)中创建了一个SQL CLR项目,该项目将调用Web服务(WCF)。最初,我在项目中创建了对Web服务的Web引用,但在执行创建的存储过程时,我不断得到“无法加载动态生成的程序集”。在大量的谷歌搜索之后,我使用wsdl实用程序从web服务的wsdl创建代码并将其添加到项目中 我在项目的属性页中打开了“生成序列化程序集”以生成序列化DLL,因为sgen实用程序不适用于我。在数据库(SQLServer2008)方面,我启用了CLR并将数据库的

我在Visual Studio 2012(目标框架:3.5)中创建了一个SQL CLR项目,该项目将调用Web服务(WCF)。最初,我在项目中创建了对Web服务的Web引用,但在执行创建的存储过程时,我不断得到“无法加载动态生成的程序集”。在大量的谷歌搜索之后,我使用wsdl实用程序从web服务的wsdl创建代码并将其添加到项目中

我在项目的属性页中打开了“生成序列化程序集”以生成序列化DLL,因为sgen实用程序不适用于我。在数据库(SQLServer2008)方面,我启用了CLR并将数据库的Trustly设置为On

然后,我在数据库中注册了CLR程序集和序列化DLL,并创建了如下过程:

CREATE ASSEMBLY [Database] FROM 'C:\MyProject\bin\Debug\Database.dll' WITH PERMISSION_SET = UNSAFE;
CREATE ASSEMBLY [Database.XmlSerializers] FROM 'C:\MyProject\bin\Debug\Database.XmlSerializers.dll' WITH PERMISSION_SET = UNSAFE;  

CREATE PROCEDURE [dbo].[XSP_AlertReachedMilestone] @milestoneID INT 
 WITH EXECUTE AS CALLER
AS EXTERNAL NAME [Database].[StoredProcedures].[XSP_AlertReachedMilestone] 
但当我执行存储过程时,我收到了“不支持的媒体类型”异常。我用谷歌搜索了一个错误,其中一个建议是检查客户端(数据库)和web服务的SOAP版本。我已经验证了web服务使用SOAP 1.2,但我不知道如何检查SQL Server使用的SOAP版本

另一个建议检查客户端(数据库)的内容/mime类型,但我也不知道如何检查


有没有办法解决这个错误?

我已经解决了这个问题。我发现问题在于web引用不能与WCF和CLR一起工作。发现这一点后,我使用wsdl.exe实用工具为web服务生成了代理类,但它没有正确创建代码。使用svcutil.exe实用程序生成代理类为我做到了这一点。然后,我将生成的代理类添加到我的项目中,并编译程序集

我已经解决了这个问题。我发现问题在于web引用不能与WCF和CLR一起工作。发现这一点后,我使用wsdl.exe实用工具为web服务生成了代理类,但它没有正确创建代码。使用svcutil.exe实用程序生成代理类为我做到了这一点。然后,我将生成的代理类添加到我的项目中,并编译程序集。