2009-07-21 9 views
2

1つのNICのマシンで非常に正常に動作する.NET Remoting Clientを構築し、リモートイベントで多数のテストメッセージを受信しました。複数のNICを搭載したマシンで.NET Remotingクライアントの問題を解決する

追加NICを追加すると、クライアントはリモートサーバーに接続できるように見えましたが、テストメッセージはもう届きません。

デバッグから、サーバー側がイベントをトリガーしましたが、クライアントはそれを取得しませんでした。グーグルから確認し、同様の問題のレポートを見つけることができます: http://www.eggheadcafe.com/community/aspnet/2/10061570/reply.aspx

解決方法はありますか?

ありがとうございます!

+0

ちょうどあなたが知っている - .NETリモート処理は、WCFの賛成で廃止されました。 –

答えて

1

これも私にとっては問題でした。

この問題の性質は、クライアントがサーバーにイベントハンドラを登録する方法です。イベントハンドラを追加するとき、クライアントはバインドされたアドレスのIPアドレスを送信しています。これは、TcpChannelクラスのstatic非公開フィールドです(リフレクターに感謝します)。サーバーが到達できるIPアドレスにクライアントを明示的にバインドする必要があります。クライアントの設定ファイルは、このようなものでなければなりません。

<channel ref="tcp" port="0" bindTo="your.ip.address.here" > 
+1

または文字列machineName = System.Environment.MachineName; if(!string.IsNullOrEmpty(machineName)) { channelSettings.Add( "machineName"、machineName); } –

1

私は を動作するようにして、ルータがクライアントとサーバの間 にあります時に相互に接続するために私の.NETリモート処理のC#クライアント・サーバープログラムを作る問題を抱えています。クライアント側の

セット

useIpAddress = falseを

例:

<system.runtime.remoting> 
    <application name="Client"> 
     <channels> 
     <channel ref="tcp" port="0" useIpAddress="false"> 
      <clientProviders> 

http://msdn.microsoft.com/en-us/library/system.runtime.remoting.channels.tcp.tcpchannel(v=vs.71).aspx

関連する問題