Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从服务器执行客户端功能_C#_.net_Wcf_Client - Fatal编程技术网

C# 从服务器执行客户端功能

C# 从服务器执行客户端功能,c#,.net,wcf,client,C#,.net,Wcf,Client,在研究了WCF之后,我不相信它能做我需要的事情。如果我有一个服务器和客户端应用程序,都是C#.NET控制台应用程序,那么基本上指导客户端执行功能的适当方式是什么 例如,如果客户端应用程序具有DownloadFTPFile()、CreateWindowsService()、IsServiceRunning()等功能,那么告诉他们从客户端执行这些功能的标准方法是什么 最初我只是想让客户端解释从服务器发送的消息,例如“downloadfile”,但我想知道是否有更好的方法。 客户有代理人 代理连接到服

在研究了WCF之后,我不相信它能做我需要的事情。如果我有一个服务器和客户端应用程序,都是C#.NET控制台应用程序,那么基本上指导客户端执行功能的适当方式是什么

例如,如果客户端应用程序具有DownloadFTPFile()、CreateWindowsService()、IsServiceRunning()等功能,那么告诉他们从客户端执行这些功能的标准方法是什么

最初我只是想让客户端解释从服务器发送的消息,例如“downloadfile”,但我想知道是否有更好的方法。

  • 客户有代理人
  • 代理连接到服务器,轮询cmomands
  • 阿根德执行命令
除非您控制环境,否则服务器发送很棘手。例如,NAT使“客户端发送”成为一场噩梦。然后,您还可以通过客户端轮询打开客户端进行其他攻击。客户端防火墙没有tp open对代理的外部访问权限。

这是可能的


在WCF中使用回调函数和双工器。但是,您将仅限于使用intranet或azure,因为只有NetTcpBinding和NetTcpRelayBinding支持它(不推荐使用WsHttpBinding)。

使用WCF,任何客户端都可以自行托管WCF服务。这可以使客户机成为一个服务。在客户端和服务之间添加一点额外的协议,您就可以如愿以偿了。

我认为您需要更深入地了解WCF。因此,类似这样的内容()是我应该研究的?服务器推送是我的想法,但我基本上应该让客户端不断检查服务器是否有任何新任务?这个示例使用的是.NET远程处理,而不是WCF。问题是您需要多快。每15秒检查一次代理就足够了,甚至每300秒检查一次。您不将实时财务数据传输到此处的交易系统。为什么只传输intranet/azure?你知道,在互联网上使用NetTcpBinding是完全可以的。@TomTom:是的,我知道。您可以在internet上使用它,但由于它在TCP上使用二进制编码,因此通信很有可能被防火墙阻止(在未知端口或数据包内容上),因此无法完全正常。另一件事是,我无法想象自己在互联网上使用双工和回调。