在Windows服务和Web应用程序之间发送数据

时间:2016-03-16 14:50:38

标签: asp.net winforms wcf webforms windows-services

只是一个简单的问题,希望有人可以指出我正确的方向。在我们的.net Web应用程序中,我们正在尝试实现与用户计算机配对的第三方设备。为了在我们的项目中生成这一对,我们需要能够拉出当前用户的计算机名称或IP地址。在winforms应用程序中,这将更容易,因为它驻留在用户网络上。由于这是一个Web应用程序,因此返回的唯一内容是服务器的IP地址或服务器的名称,因此非常困难。所以我们现在想做的就是拥有一个Windows服务或WinForms应用程序,我们的客户可以下载这些应用程序将这些信息返回给我们的应用程序。

创建Windows服务或WInForms应用程序是直截了当的,我理解,我的问题是如何让我的Windows服务或WinForms应用程序将数据发送到Web应用程序?我已经研究过WCF,但似乎最终用户必须在他们的端部设置一些tcp设置,这对某些人来说可能很难,我想避免。如果除了WCF之外还有任何建议,我也会对此持开放态度。

对于如何处理这种情况的任何建议表示赞赏,谢谢。

1 个答案:

答案 0 :(得分:0)

我猜您误解了Web服务或WCF或您使用的任何技术的概念。

Web服务是一个“功能”,它将从客户端调用但在服务器上执行,因此当您执行WCF并从其他网站或桌面应用程序使用它时,您就在事实上将数据发送到该服务器。

在其他情况下,如果您正在尝试实现“实时”监视器,将数据发送到服务器并在您的网站上显示,那么您需要单独处理。

这是你需要做的。

首先设置一个WCF服务来处理SERVER端的信息,在那里你需要实现一个函数,它将接收一个IP和计算机名称(或任何你需要的)并返回哈希,密钥或者用于配对设备的信息,然后将其托管在IIS服务器上。

`public string PairDevice(string name,string IP,string ....){

//save to database, do something and return the hash.

}`

其次创建一个Windows服务,一个桌面应用程序或将在CLIENT计算机上运行的东西,在那里你需要消耗WCF,在你的主代码中,你将检索你的WCF函数所需的所有参数,然后添加“服务参考”,您可以在CLIENT上使用REMOTE功能,请注意应用程序需要访问您的服务。

//retrieve IP, name, etc string name; string ip; myWCFclass WCF= new myWCFclass(); string myHash=WCF.PairDevice (name,ip,etc...); //thats all.

这就是你要做的一切,如果你需要更多关于WCF如何运作的帮助,我建议你阅读这个链接

http://www.codeproject.com/Articles/406096/A-beginners-tutorial-for-understanding-Windows