2011-11-18 32 views
3

我需要从asp.net Web服务器和Windows C++应用程序中找到最有效的通信方式。 Windows应用程序没有任何权限来访问asp.net Web服务器的数据库。在网络服务器与.NET应用程序之间进行通信的方法

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

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

我可以在那一刻想到的唯一方法是如下:

  • 的asp.net web服务器将有两个Web服务方法:

  • 的C++应用程序将调用网络为区间服务的方法。如果有变化,那么C++应用程序将处理。

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

任何其他方式来解决这种沟通?

在此先感谢。

回答

2

如果C++应用程序也在Windows上,命名管道将是一个很好的解决方案。他们可以配置为持久的,这样他们可以排队消息,如果任何一方没有准备好接收消息,并且它们很容易使用。它们基本上看起来像可以读取或写入的文件,数据出现在“管道”的另一侧。

看看文件(C++)位置:http://msdn.microsoft.com/en-us/library/aa365781(v=VS.85).aspx

在你可以使用.NET API的ASP.NET的一面。下面是一个很好的例子,让你开始:http://msdn.microsoft.com/en-us/library/bb546085.aspx(这个例子包括客户端和服务器代码。)

如果C++应用程序与ASP.NET应用程序位于同一物理服务器中,那么命名管道将是一个很好的解决方案。在这种情况下,操作系统只会在进程间移动内存,所以它可能非常快。

此外,我会将C++应用程序配置为Windows服务,以便它始终可用,并且可以在重新启动它运行的服务器时重新启动它。如果让它继续运行非常重要,您可以集成性能计数器,然后让您的操作团队监视计数器,以确保其在预期的阈值内运行。

1

的C++应用程序也可以做一个简单的GETPOST请求提供足够的信息,该网站服务器在您不希望暴露一个Web服务的情况下处理。

+0

可否请给我一些信息如何使用获取和调用从C + +应用程序发布的网页服务 – olidev

+0

http://scumways.com/happyhttp/happyhttp.html有所有的源代码 –

1

您可以使用网络套接字。自从我对他们做任何事情已经很长时间了,所以我不能提供太多的帮助。研究Winsock(又名Windows套接字API)。

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

由于@parapura建议您可以使用简单的HTTPRequest获取&后期处理方法。您可以为这些请求创建自己的http处理程序来自定义响应。

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

相关问题