SQL CLR 内的 WCF 客户端

2024-05-01

我知道它不受支持,而且我知道这甚至不是一个好主意。但是,我希望在 SQL 表值函数中拥有一个 WCF 客户端。

我(看似)注册了正确的程序集,但在运行我的客户端时 - 我收到 WCF 错误:



Msg 6522, Level 16, State 1, Line 1
System.ServiceModel.CommunicationObjectFaultedException: 
 The communication object, System.ServiceModel.ChannelFactory`1[MyProxy.IMyService], 
 cannot be used for communication because it is in the Faulted state.
  

Sql Server 外部的测试似乎有效 - 我什至没有看到 WCF 客户端尝试建立 TCP 连接。

不确定这是 WCF 还是 SQL CLR 问题,因为我对这两个问题都是新手......

编辑:我知道所需的 System.ServiceModel 及其无数程序集不在经过审查的 Sql CLR 列表中。然而,

“仍然可以从托管存储过程、触发器、用户定义函数、用户定义类型和用户定义聚合中调用不受支持的库。必须首先使用 CREATE ASSEMBLY 语句在 SQL Server 数据库中注册不受支持的库,在它可以在您的代码中使用之前。在服务器上注册和运行的任何不受支持的库都应该经过审查和测试,以确保安全性和可靠性。”


本文可能会帮助您找出真正的底层异常是什么,并了解它的致命程度:

http://jdconley.com/blog/archive/2007/08/22/wcfclientwrapper.aspx http://web.archive.org/web/20101230161606/http://www.jdconley.com/blog/archive/2007/08/22/wcfclientwrapper.aspx(archive.org 副本)

As 大卫正确地说 https://stackoverflow.com/questions/489748/wcf-client-inside-sql-clr#489850,SQL CLR 支持 .NET 程序集的有限子集:

SQL 2005 支持的 .NET Framework 库 http://msdn.microsoft.com/en-us/library/ms403279(SQL.90).aspx
SQL 2005 CLR 集成编程模型限制 http://msdn.microsoft.com/en-us/library/ms403273(SQL.90).aspx

SQL 2008 支持的 .NET Framework 库 http://msdn.microsoft.com/en-us/library/ms403279.aspx
SQL 2008 CLR 集成编程模型限制 http://msdn.microsoft.com/en-us/library/ms403273.aspx

System.Web.Services如果端点是 WSDL 服务,则受支持,这样可能会帮助您摆脱困境?或者,您始终可以使用 Web 服务作为您尝试与之通信的任何非 Web 服务 WCF 端点的代理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL CLR 内的 WCF 客户端 的相关文章

随机推荐