asp.net - 在 .NET 中在网络服务器与 Windows 应用程序之间进行通信的方法

标签 asp.net c++ web-services web

我需要找到从 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/

相关文章:

java - 将请求从一个 WSDL 发送到另一个 WSDL

c# - Visual Studio 2012 给出了荒谬的错误

.net - session 对象不更新 ASP.NET

java - 实现通用抽象 jaxrs 服务

C++,输出时移动一个NaN到数组末尾

c++ - 使用 ->GetString (""时的段错误)在一个单独的类中

使用 Cxf Web 服务的 Java 示例 ~ 运行时异常

c# - 什么时候在 DbContext 上执行查询

asp.net - Request.ServerVariables ["REMOTE_ADDR"] 和 Request.UserHostAddress 之间有什么区别?

c++ - 使用 boost::spirit 解析 double 列表