【问题标题】:ways of making a communication between a webserver to a windows application in .NET在 .NET 中在 Web 服务器与 Windows 应用程序之间进行通信的方法
【发布时间】:2011-11-18 13:56:46
【问题描述】:

我需要找到从 asp.net Web 服务器和 Windows C++ 应用程序进行通信的最有效方式。 windows应用程序没有任何权限访问asp.net web服务器的数据库。

当用户按下按钮时,C++ 应用程序应该会接收到带有一些字节的操作。

作为回报,C++ 应用程序处理完数据后,会将结果发送回 Web 服务器。

目前我能想到的唯一方法如下:

  • asp.net 网络服务器将有两种网络服务方法:

  • C++ 应用程序将调用该 Web 服务以获取某个时间间隔的方法。如果有变化,则 C++ 应用程序将处理。

  • 在 C++ 应用程序完成其进程后,它将调用该 Web 服务上的方法来通知结果。

还有其他方法可以解决这种沟通吗?

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    如果 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 服务,以便它始终可用,并且可以在运行它的服务器重新启动时重新启动。如果保持其运行非常重要,您可以集成性能计数器,然后让您的运维团队监控计数器以确保它在预期阈值内运行。

    【讨论】:

      【解决方案2】:

      C++ 应用程序还可以发出简单的 GETPOST 请求,其中包含足够的信息,以便网络服务器可以处理,以防您不想公开网络服务。

      【讨论】:

      • 能否请您告诉我一些如何使用 C++ 应用程序中的 get 和 post 调用 Web 服务的信息
      【解决方案3】:

      您可以使用网络套接字。我已经很久没有和他们做任何事情了,所以我帮不上什么忙。研究 Winsock(又名 Windows Sockets API)。

      您可以使用 WCF 服务并使用您的 C++ 客户端连接到它们。您将不得不研究从 C++ 客户端使用 WCF 服务。

      正如@parapura 建议的那样,您可以使用简单的 HTTPRequest 获取和发布方法。您可以为这些请求创建自己的 http 处理程序以自定义响应。

      正如你所建议的,你可以使用简单的网络服务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-08
        相关资源
        最近更新 更多