VB6 连接到 WCF
Posted
技术标签:
【中文标题】VB6 连接到 WCF【英文标题】:VB6 connect to WCF 【发布时间】:2011-10-27 00:21:21 【问题描述】:如何创建连接到 WCF Web 服务的 VB6 客户端?
有没有更好的解决方案来创建 Web 服务而不是使用 WCF,以便从 VB6 连接更容易?
【问题讨论】:
【参考方案1】:这真的取决于您的具体要求。以下是一些建议:
-
您可以编写一个 .NET 程序集,该程序集具有对 WCF 服务的服务引用,并在其中包含一个作为 COM 对象公开的包装类。您可以从中访问 VB6 Web 应用程序。唯一的问题是 app.config 文件在这种情况下会被调用。这很容易通过
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
和this *** answer illustrates 找到。如果您的 VB6 应用程序与您的服务在同一个 LAN 上,这将具有允许您使用 netTcpBinding
的优势,这将比 http 绑定具有更少的开销。如果您需要断开对服务的访问,您也可以使用类似netMsmqBinding
的东西。
已弃用的Soap Toolkit 3.0 有一个COM SOAP 客户端。如果我要尝试使用它,我可能会坚持使用 basicHttpBinding
。
如果您的服务在接受的参数和返回的值方面相对简单,您可能需要考虑使用webHttpBinding
,进行原始http 调用,并自己解析结果。
【讨论】:
【参考方案2】:您可以找到有关在 VB6 中编写 SOAP 客户端的文章 - 例如 this one
我会为您提供一些建议,让您了解替代客户端或 Web 服务技术:
-
为什么要使用不同的 Web 服务技术来编写具有 10 年历史的技术的客户端。我曾经是一名 VB6 程序员,所以我并不反对它——但为了使用相当古老的客户端技术,设计不同的服务似乎是一个奇怪的设计选择。你一定有你的理由,但我只是想挑战一下他们。
我最近编写了一个 WCF 客户端应用程序 - 在 c# 中使用自动生成的代理 - 工作正常。也就是说,Web 服务的 REST 架构有时更容易理解,并且可能是一种更适合 VB6 的替代方案。您的网络服务是否必须使用类似 SOAP 的架构?
我的建议是,如果您坚持使用 VB6 - 并且对于 Web 服务端很灵活 - 看看 REST 架构。如果您想采用 SOAP 方式 - WCF 对我来说非常有用,您应该能够在 VB6 中获得一些工作,但我会寻找有关在 VB6 中使用 SOAP 的文章,因为关于 VB6 的文章并不多和 WCF。
【讨论】:
1.现有软件仍在使用 VB6。 我猜会是这样 - 但我不知道您的应用程序的模块化程度如何,也许是一个 VB.NET 模块来执行 WCF 位?显然不了解您的应用程序,所以这只是一个建议。以上是关于VB6 连接到 WCF的主要内容,如果未能解决你的问题,请参考以下文章
将 WCF 连接到 Xamarin.Android 项目时出现连接被拒绝错误