【发布时间】:2012-12-04 14:20:23
【问题描述】:
这个问题是对上一个问题的跟进:link
我必须在 .NET/C# 中开发 Windows 服务。该服务必须由用 VB6 编写的应用程序使用。该服务实现 Quartz.NET 来处理计划任务,并且必须实现侦听器才能启动由 VB6 应用程序启动的功能。
VB6 团队的要求是能够使用 Winsock。因此我必须使用套接字和侦听器。问题是我没有这方面的经验,我更像是一个 WCF 人。
我现在正在查看 TcpListener 类,看看它是否符合要求。
我的第一个问题:如果我实现 TcpListener 类,VB6 团队是否能够使用该服务,同时牢记使用 VB6 的缺点(例如数据结构和二进制格式)?
我的第二个问题:假设 VB6 应用程序必须有 3 个函数可用,并且创建了 1 个侦听器。执行此操作的最佳做法是什么?
再次强调:非常感谢任何建议!
【问题讨论】:
-
这对于编写 VB6 应用程序的人来说确实是一个问题,但是......我想说最简单的方法是使用 CRLF 终止符或类似的 ASCII 编码文本数据来编写它。这应该很容易在 VB 和 .NET 中使用。
-
您可以在 .NET 端使用 HttpListener msdn.microsoft.com/en-us/library/system.net.httplistener.aspx,在 VB6 端使用一些 HTTP 库(例如 MSXML2.ServerXMLHTTP)。 HTTP 比套接字更高,但库更容易使用。
-
为什么不通过COM对象暴露服务呢?这对于 VB6 来说是很自然的。让服务实现自托管 WCF 服务,并将客户端(“添加服务引用”)公开为 COM 对象。
-
@John Saunders:我同意你的解决方案。但是,VB6 团队没有。
-
@Marc Gravell:谢谢,这是一个问题。
标签: c# .net vb6 windows-services