2009-07-14 13 views
1

私の場合、サーバーはデータの準備ができたらクライアントにデータをフェッチするよう通知します。この通知は、クライアントが購読しなければならないイベントを介して実装されます。なぜサーバーからの.NETリモートイベントが別のコンピュータのクライアントに到達できないのですか

同じコンピュータでテストすると、クライアントは問題なく通知されます。ただし、クライアントを他のコンピュータに移動すると、通知を受け取ることができなくなります。

リモーティングサービスのネットワーク接続と可用性をチェックして、クライアントがサーバー側でマーシャリングされたリモートオブジェクトにアクセスできることを確認しました。

しかし、実際にはサーバーのイベント== nullは、クライアントのメソッドがここに登録されていないことを意味します。

誰かが原因を知っていますか? ありがとう BR

答えて

1

まず、クライアントとサーバーの両方のイベントログを調べて、これに関連するエラーがないかどうかを確認します。

第2に、リモートクライアントおよびローカルクライアントと同じユーザーIDですか?同じドメインアカウントを持つ同じログインユーザーですか?

ファイアウォールの設定はどうですか? Remotingが許可されていますか?

最後に、RemotingがWCFに代わって非難されていることをご存知ですか?

+0

- リモーティングが許可されていることを確認してください。 - ソフトウェアは.net 2.0に基づいています –

+0

私はファイアウォールを言った。ポートはインバウンドトラフィック用に開いていますか? –

+0

はい、ファイアウォールは受信メッセージをブロックしました。ファイアウォールが削除された後、予定どおりにイベントが到着しました。おかげで –

2

サーバーイベントに登録する各クライアントオブジェクトはMarshalByRefObjectであり、そのアセンブリはサーバーによって参照される必要があります。したがって、イベントでラッパーを使用して、リモーティングで使用する必要がある場合

おそらく、この記事が参考になるかもしれません。

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

+0

ラップされていないとビルディングエラーが報告されます –

0

リモーティング呼び出しは両方の方向を予定している場合、ポートは、あなたのサーバーがクライアント上のポートを開くことができるである必要があります意味両方向に開閉可能にする必要があります。 2つのソケットが開き、双方向の通信が可能です。

関連する問題