How do I call WCF client from Excel 2003 VBA?
如问题所问,如何从Excel2003 VBA调用WCF客户端?
我看到有一个可以调用Web服务的地方,但是我已经通过谷歌搜索过了,我得到的所有结果都不可能从VBA调用WCF客户机。
我想知道在我对代码做任何事情之前要使用什么方法,不想浪费时间,稍后发现不可能这样做。
您可能希望使用wcf服务标记,该标记允许您从vba调用wcf服务,而不在.NET框架之外的Excel客户端计算机上安装任何内容。
1 2 3 4 5 6 7 8 9 10 | Dim addr As String addr ="service:mexAddress=""net.tcp://localhost:7891/Test/WcfService1/Service1/Mex""," addr = addr +"address=""net.tcp://localhost:7891/Test/WcfService1/Service1/""," addr = addr +"contract=""IService1"", contractNamespace=""http://tempuri.org/""," addr = addr +"binding=""NetTcpBinding_IService1"",bindingNamespace=""http://tempuri.org/""" Dim service1 As Object Set service1 = GetObject(addr) MsgBox service1.GetData(12) |
我已经写出了一个完整的分步示例。
达米安
在这种情况下,我不会使用vsto。只要您不希望SOAP消息中有任何安全性,COM互操作可能是最好的方法。
我试了很长一段时间从Excel VBA调用基于SOAP的WCF服务,但没有任何运气。
BR/>相反,我将服务改为REST绑定(webhttpbinding)。这样我就可以像其他XML文件一样将数据Stright加载到XML映射中。对我来说效果很好,但我只是想导入一些数据。
BR/>至于SOAP,这个问题的答案提到了Web服务工具包,我可以找到建议使用的所有示例。
我在使用Office2003 Web服务工具包的过程中取得了有限的成功,但也有一些困难。
请注意,这是微软不支持的,并且有许多限制,可能使其不适合生产使用。例如,它不支持返回空集合的Web服务:请参阅此StackOverflow问题。
如果你想走这条路,尽管它是不受支持的,下载工具包和张贴任何问题,你在这里。
Microsoft建议使用vsto,但这不容易与vba集成…