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的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 VB6 Winsock 连接到票务打印机

将 WCF 连接到 Xamarin.Android 项目时出现连接被拒绝错误

无法连接到远程服务器 wcf服务

C#如何强制等待连接到 WCF 服务

带有代理的 WCF 服务无法连接到 EntityFramework

当多个用户连接到数据库时,VB6 数据库操作变慢