我们有一个内置于VB6的EPOS系统。客户使用Microsoft Dynamics AX作为CRM系统。第三方为我们的客户创建了AX实现,他们已经公开了我们需要使用的一组WCF Web服务来同步EPOS和AX CRM之间的数据。了解VB6会遇到调用WCF服务的问题,我创建了以下组件来处理EPOS和AX CRM之间的通信。VB6软件使用WCF Web服务。 App.config中的端点。错误VB6没有App.config
VB6 EPOS它调用 - >
1)VB6 DLL包装它调用 - >
2).NET(3.5)COM可调用代理DLL包装它调用 - >
3).NET(3.5)Web服务处理程序(其中Web服务实际被调用的地方) - >
Microsoft Dynamics AX CRM。
我建Vb.NET测试控制台应用程序来模拟从VB6调用帮助调试,以便测试控制台应用程序调用组件2.
虽然这样做,我收到以下异常: -
“(找不到在servicemodel客户端配置部分中引用合同'X'的默认端点元素,这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端中找不到匹配此合同的端点元素元素。)“
我搜索了一下,发现我必须将组件3的app.config中的绑定和端点部分复制到我的测试控制台应用程序的新app.config中。我不知道WCF,现在还没有足够的时间去真正学习它,直到我明白为什么这会修正这个错误。
现在,虽然我试图从VB6 EPOS调用服务,并且此错误再次弹出。所以我给组件2添加了一个app.config,认为组件2是链中的第一个.NET(3.5)组件,这是端点声明应该去的地方,但不是。错误仍然弹出。
有没有人有任何想法?任何编程英雄,可以摆脱这个简单的一些简单的请点亮?请不要问我们为什么不重写EPOS。我们会。只是还没有。这里有超过300万行意大利面代码,我只用了8个月的时间!
另外,这种情况不会破坏OOP的黄金法则之一,即封装。为什么我的VB6 EPOS需要知道组件3用于访问WCF服务的端点?这里
感谢您的支持!我会研究你的建议。不过要说,我认为我的观点重新打破OOP的规则,尽管如此。我想不出为什么在这样的情况下,你的初始调用者应该知道什么是组件中的几个步骤。也许这是因为我不知道WCF。更好地学习它快! – psiberman
对,我认为在大多数情况下,初始调用者知道有关如何调用WCF服务的详细信息是可以的。有关地址,合同,绑定,端点等的配置细节实际上只是描述如何到达服务的信息部分,而不是真正关于服务的作用或它的作用...... – fdfrye
您也可以创建一个' MyVB6.exe.config'文件(其中_MyVB6.exe_是使用WCF服务的VB6可执行文件),以便找到WCF服务配置信息。我以前成功完成了这个任务。此外,为了调试,您还可以实际创建一个'VB6.exe.config'文件,因为通过VB6.exe可执行文件进行调试。 HTH。 – fourpastmidnight