首先感谢您花时间阅读我的问题。以下是我到目前为止所要完成的事情。
我想要做的是创建一个侦听来自ASP.NET应用程序的请求的Windows应用程序(或各种服务器)。将安装Windows应用程序,并将侦听来自ASP.NET应用程序的消息,然后进行一些处理。流程是这样的:
用户下载桌面应用程序并在我的网站上注册其IP地址。下载桌面应用程序后,ASP.NET应用程序可以将请求发送到该特定桌面客户端以进行进一步处理。我认为在这种情况下进一步处理与分辨率无关,这就是为什么我跳过了将要进行什么处理的细节的原因。但如果您认为这很重要,请告诉我,我也会添加这些细节。
我已经研究过创建一个可以监听请求的TCP服务器。由于用户已经在我的网站上注册了他们的IP地址,我的网站会为他们分配一个唯一的标识符,并将ID和IP地址存储在数据库中。现在,ASP.NET站点可以向该桌面应用程序发送请求。
我已经考虑过为此创建一个TCP服务器。虽然研究我也遇到了PNRP,它看起来像我想做的事情。
你们可以推荐一些解决方案或我应该在哪些方面寻找这种情况吗?我应该创建一个简单的TCPLISTENER还是可以使用PNRP方法?或其他什么?
基本要求是Web应用程序能够与桌面应用程序通信。 Web应用程序将为众多用户提供服务,每个用户都将安装一个桌面应用程序。哪个用户可以通过Web应用程序解决桌面客户端问题,该用户将维护唯一用户ID及其相应IP地址的数据库。
提前感谢您的帮助。
答案 0 :(得分:0)
无论您做什么,都要考虑防火墙/ NAT。客户端应用程序可能更容易轮询服务器(启动连接),否则您可以通过尝试在用户的计算机中安装可远程访问的服务器来打开一堆蠕虫,而无需在用户的网络设备上进行一些非常手动的配置
一旦你整理了那部分,我在你的情况下使用的是.NET Remoting。当时WCF没有出来,当它发生时它就是为了满足我的需求而瘫痪。 TCP IP套接字过于原始(我不得不编写太多代码),因此Remoting理想地解决了我的问题(设置连接的一整行代码,一切都是自动的)。
编辑:我使用了一个优秀的第三方库,使Remoting更加灵活(足够灵活,我还在等待WCF赶上功能集,以便我停止使用Remoting,而不是好运!)。查看http://www.genuinechannels.com/以查看他们拥有的所有功能。它包括从服务器到客户端进行呼叫,这听起来就像你需要做的那样。看看吧。
答案 1 :(得分:0)
您可以在桌面应用中使用.NET远程处理或网络服务。对后者使用WCF或WSE。您可以使用COM添加windows firwall规则。