-1

私は WCF の初心者なので、本当に助けが必要です。

WCF を使用する 2 つのプログラムがあります。それらが 1 台のコンピューターで実行されていて、クライアントがアドレスnet.tcp:\Localhost:8001\MyServiceを使用してサーバー (たとえば、アドレス 192.168.1.1) に接続する場合、すべて問題ありません。しかし、クライアントのアドレスをnet.tcp:\192.168.1.1:8001\MyServiceに変更すると、クライアントがサーバーに接続できないため、system.timeoutexception が発生します。

手伝ってくれてありがとう。

4

2 に答える 2

1

ファイアウォールのポートへの外部アクセスを許可する必要がある場合があります。

localhostからに通信している限りlocalhost、これらの要求はループバック アダプタによって処理されるため、ファイアウォールは機能しません。

しかしlocalhost、マシンの IP アドレスから通信するときは、ファイアウォールによって処理されるネットワーク要求を行っています (物理的に同じマシン上にいる場合でも)。

ところで、サーバー側では、WCF サービスをエンドポイントで開始するかlocalhost192.168.1.1.

編集私は、あなたが聞いているか
どうかは問題ではないと書きました-これは、利用可能なネットワークアダプターが1つしかない場合にのみ当てはまります。localhost192.168.1.1

2 つ以上のネットワーク カードがある場合 (たとえば、ワイヤレス LAN がオンになっており、ケーブル経由で接続されている場合)、localhostまたは0.0.0.0サービスが任意のアダプターでリッスンするようになります。を使用192.168.1.1すると、サービスはその IP アドレスでの接続のみをリッスンします。

これは、異なるネットワーク アダプタが異なる (サブ) ネットワークのメンバーになる場合に特に重要です。

例: 1 つのアダプターが192.168.1ネットワークに接続され、もう 1 つのアダプターがネットワークに接続されてい192.168.2ます。サービスがリッスンしている場合、localhostまたは0.0.0.0両方のネットワークから到達可能です。でのみリッスンする場合は、ネットワーク192.168.1.1で使用できません。192.168.2

于 2012-10-25T08:37:33.167 に答える
-2

「hosts」ファイルに「192.168.1.1」が含まれていることを確認してください。そして、試してみてください。

hosts ファイルは「C:\Windows\System32\drivers\etc」にあります。

于 2012-10-25T08:27:25.393 に答える