我们有一个内置在 VB6 中的 EPOS 系统。客户使用 Microsoft Dynamics AX 作为 CRM 系统。第 3 方为我们的客户创建了 AX 实施,他们公开了一组 WCF Web 服务,我们需要使用这些服务在 EPOS 和 AX CRM 之间同步数据。知道 VB6 在调用 WCF 服务时会出现问题,我创建了以下组件来处理 EPOS 和 AX CRM 之间的通信。
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 服务???