Excel 2016中的Web服务绰号
我有一个VBAmacros ,它使用由GetObject
生成的名字对象与WCF Web服务进行交互。
描述传递给GetObject
的Web服务的string如下所示:
service:mexaddress=http://my.net/ws/MyService.svc/mex, address=http://my.net/ws/MyService.svc, contract=IMyService, contractNamespace=http://tempuri.org/, binding=BasicHttpBinding_IMyService, bindingNamespace=http://tempuri.org/
在Excel 2010中,所有工作都正常。
但是在使用Excel 2016的 Windows 10上 , Automation Error Invalid Syntax 800401e4
会失败。
我已经尝试了不同的语法,如文档和教程,如service4:mexAddress
,有和没有引号和双引号"
…但没有运气到目前为止。
我甚至试图用Visual Studio进行debugging,因为我已经读过,在.Net中实现的Web服务绰号的东西,我可以捕获一些更明确的exception,但没有被捕获,虽然我已经要求Visual抓住一切都可以。
编辑1
- 我从头开始构build了一个新的基本WCF服务,结果是一样的,
- 我用ProcMon跟踪Excel.exe; 不知道它是相关的,但在Windows 10 / Excel 2016我看到,它试图访问像
C:\Users\my-user\Documents\service:mexaddress=http://my.net/ws/MyService.svc/mex, address=http:
而在Windows 7 / Excel 2010中则不是这种情况。
也许它缺less处理service
“协议”的组件。
编辑2
-
我试图直接将WSDL元数据embedded连接string(如使用COM客户端使用WCF名字中所述),但仍然是相同的错误,
-
我试图侦察与Fiddler代理的HTTP交换,但没有请求是可见的。