需要调用/关闭在其他PC上运行的程序

时间:2012-11-04 19:06:43

标签: c#

我们拥有各种类型的小型应用服务器,这些服务器只是exe文件。这些应用服务器在各种机器上运行,我需要一种机制来启动/结束应用服务器,而无需前往运行应用服务器的每台PC。我需要的是:

  1. 我将安装每个Pc的客户端应用程序,其中app服务器将运行,并且将有一个服务器应用程序可用于监视在各种PC上运行的app服务器。

  2. 在客户端上,我们可以详细说明各种应用服务器(只是exe文件)的位置及其友好名称。 (例如c:\ app1.exe,Myapp; d:\ Myotherapp,OtherApp)。

  3. 在服务器上,当输入IP地址或主机名时,它会向客户端发送一个请求,该请求将回复它能够运行的应用服务器(MyApp,OtherApp),它将会最初报告他们的状态为STOPPED。当针对特定应用服务器按下服务器上的开始按钮时,它将向客户端发送消息以启动特定应用服务器。客户端上运行的应用服务器的状态将定期刷新(通过交换上述消息)< / p>

  4. 如果某个其他服务器已启动并指向同一客户端,则会报告客户端上运行了2个应用服务器,其中一个已启动。按下停止按钮后,它将在客户端上发送消息以停止特定的应用服务器。

  5. 我最初想过使用这种技术:

    1. 当服务器希望任何特定PC启动其应用服务器时,它只会在数据库表中创建一个条目。

    2. 客户端定期嗅探表,当它看到创建了一个条目时,它将启动该程序。

    3. 但是这种技术很差,因为它使用轮询,客户端将继续查询数据库。我想要推送一些消息。

      socket编程是否可以解决这个问题,还是有简单的方法?

1 个答案:

答案 0 :(得分:1)

您可以尝试nvents。我相信它有你想要的东西。这将允许您只使用TCP端口上的WCF通过网络订阅事件,而不必连续轮询数据库。