在我的情况下,服务器将通知客户端在数据准备好时获取他的数据。此通知是通过客户端必须订阅的事件实现的。
在同一台计算机上测试时,客户端会收到通知,没有任何问题。但是,当客户端移动到另一台计算机时,它无法再获取通知。
我检查了网络连接和远程服务的可用性,发现客户端可以访问服务器端编组的远程处理对象,事件订阅没有任何例外。
但令我困惑的是,实际上服务器的事件== null,意味着客户端的方法从未在这里注册过。
有人知道原因吗? 谢谢 BR
答案 0 :(得分:2)
注册到服务器事件的每个客户端对象应该是MarshalByRefObject,并且它的程序集应该由服务器引用。因此,如果要在远程处理中使用它们,则需要围绕事件进行包装
也许,这篇文章可能会对你有帮助。
http://aviadezra.blogspot.com/2008/06/code-snippets-remoting-client-server_19.html
答案 1 :(得分:1)
首先,我会查看客户端和服务器上的事件日志,看看是否存在与此相关的错误。
其次,与远程客户端和本地客户端的用户身份是否相同?具有相同域帐户的相同登录用户?
防火墙设置怎么样?你确定允许Remoting吗?
最后,只是为了确保:你是否知道Remoting现在已被弃用而不赞成WCF?
答案 2 :(得分:0)
如果远程呼叫是双向的,则端口需要在两个方向上都可以打开,这意味着您的服务器需要能够在您的客户端上打开端口。你将打开两个插座,双向通信。