我需要找到从 asp.net Web 服务器和 Windows C++ 应用程序进行通信的最有效方式。 windows 应用程序没有访问 asp.net web 服务器数据库的任何权限。
当用户按下按钮时,C++ 应用程序应接收带有一些字节的操作。
作为返回,在 C++ 应用程序上处理数据后,它会将结果发送回 Web 服务器。
目前我能想到的唯一方法如下:
asp.net 网络服务器将有两个网络服务方法:
C++ 应用程序将在一段时间内调用该 Web 服务的方法。如果有变化,则 C++ 应用程序将处理。
- C++ 应用程序完成其进程后,它将调用该 Web 服务上的方法来通知结果。
有没有其他方法可以解决这种通信?
提前致谢。
最佳答案
如果 C++ 应用程序也在 Windows 上,命名管道将是一个很好的解决方案。它们可以配置为持久的,因此如果任何一方还没有准备好接收消息,它们就可以对消息进行排队,而且它们非常易于使用。它们基本上看起来像您可以读取或写入的文件,数据显示在“管道”的另一侧。
在此处查看文档 (C++):http://msdn.microsoft.com/en-us/library/aa365781(v=VS.85).aspx
在 ASP.NET 方面,您将使用 .NET API。这是一个让您入门的好例子:http://msdn.microsoft.com/en-us/library/bb546085.aspx (此示例包括客户端和服务器代码。)
如果 C++ 应用程序与 ASP.NET 应用程序位于同一台物理服务器上,命名管道将是一个很好的解决方案。在那种情况下,操作系统只会为您在进程之间移动内存,因此速度可能会非常快。
此外,我会将 C++ 应用程序配置为 Windows 服务,以便它始终可用,并且可以在运行它的服务器重新启动时重新启动。如果保持运行非常重要,您可以集成性能计数器,然后让您的运营团队监控计数器以确保它在预期阈值内运行。
关于asp.net - 在 .NET 中在网络服务器与 Windows 应用程序之间进行通信的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8183542/