0

首先感谢您花时间阅读我的问题。这是我想要完成的事情,然后是我到目前为止所做的事情。

我想要做的是创建一个 Windows 应用程序(或各种服务器)来侦听来自 ASP.NET 应用程序的请求。将安装 Windows 应用程序并侦听来自 ASP.NET 应用程序的消息,然后进行一些处理。流程是这样的:

用户下载桌面应用程序并在我的网站上注册他们的 IP 地址。下载桌面应用程序后,ASP.NET 应用程序可以向该特定桌面客户端发送请求以进行进一步处理。我认为在这种情况下,进一步的处理与解决方案无关,这就是为什么我跳过了有关将要进行哪些处理的细节。但是,如果您认为这很重要,请告诉我,我也会添加这些详细信息。

我已经研究过创建一个侦听请求的 TCP 服务器。因为用户已经在我的网站上注册了他们的 IP 地址,所以我的网站为他们分配了一个唯一的标识符,并将 ID 与 IP 地址一起存储在数据库中。现在,ASP.NET 站点可以向该桌面应用程序发送请求。

我已经考虑为此目的创建一个 TCP 服务器。在研究过程中,我也遇到了 PNRP,这似乎是我正在尝试做的事情。

你们能推荐一些解决方案或者我应该在哪里寻找这种情况吗?我应该创建一个简单的 TCPLISTENER 还是可以使用 PNRP 方法?或者是其他东西?

基本要求是 Web 应用程序能够与桌面应用程序通信。Web 应用程序将为众多用户提供服务,并且每个用户都将安装一个桌面应用程序。Web 应用程序将为哪个用户解决哪个桌面客户端问题,该应用程序将维护唯一用户 ID 及其相应 IP 地址的数据库。

在此先感谢您的帮助。

4

2 回答 2

0

无论您做什么,都要考虑防火墙/NAT。客户端应用程序可能更容易轮询服务器(启动连接),否则您会通过尝试在用户的计算机中拥有一个可远程访问的服务器来打开一罐蠕虫,而无需在用户的网络设备上进行一些非常手动的配置.

一旦你把那部分整理好,我在你的情况下使用的是 .NET Remoting。当时 WCF 还没有问世,当它出现时,它会因我的需要而瘫痪。TCP IP 套接字太原始(我不得不编写太多代码),因此 Remoting 完美地解决了我的问题(一手完整的代码行来建立连接,从那里开始一切都是自动的)。

编辑:我使用了一个优秀的第三方库,它使远程处理更加灵活(足够灵活,我仍在等待 WCF 赶上功能集,以便我停止使用远程处理,但还没有运气!)。查看http://www.genuinechannels.com/以查看他们拥有的所有功能。它包括从服务器到客户端的调用,这听起来与您需要做的完全一样。一探究竟。

于 2010-11-03T16:54:40.777 回答
0

您可以在桌面应用程序中使用 .NET 远程处理或 Web 服务。后者使用 WCF 或 WSE。您可以使用 COM 来添加 Windows 防火墙规则。

于 2010-11-03T16:56:26.340 回答