为什么来自服务器的.NET远程事件无法到达不同计算机上的客户端

时间:2009-07-14 10:28:46

标签: events remoting

在我的情况下,服务器将通知客户端在数据准备好时获取他的数据。此通知是通过客户端必须订阅的事件实现的。

在同一台计算机上测试时,客户端会收到通知,没有任何问题。但是,当客户端移动到另一台计算机时,它无法再获取通知。

我检查了网络连接和远程服务的可用性,发现客户端可以访问服务器端编组的远程处理对象,事件订阅没有任何例外。

但令我困惑的是,实际上服务器的事件== null,意味着客户端的方法从未在这里注册过。

有人知道原因吗? 谢谢 BR

3 个答案:

答案 0 :(得分:2)

注册到服务器事件的每个客户端对象应该是MarshalByRefObject,并且它的程序集应该由服务器引用。因此,如果要在远程处理中使用它们,则需要围绕事件进行包装

也许,这篇文章可能会对你有帮助。

http://aviadezra.blogspot.com/2008/06/code-snippets-remoting-client-server_19.html

答案 1 :(得分:1)

首先,我会查看客户端和服务器上的事件日志,看看是否存在与此相关的错误。

其次,与远程客户端和本地客户端的用户身份是否相同?具有相同域帐户的相同登录用户?

防火墙设置怎么样?你确定允许Remoting吗?

最后,只是为了确保:你是否知道Remoting现在已被弃用而不赞成WCF?

答案 2 :(得分:0)

如果远程呼叫是双向的,则端口需要在两个方向上都可以打开,这意味着您的服务器需要能够在您的客户端上打开端口。你将打开两个插座,双向通信。