これは、.net リモーティング サーバーがデフォルトで IPv4 をリッスンするために発生します。ネットワークが IPv6 と IPv4 の両方を使用するように構成されている場合、Windows 7 はホスト名を最初に IPv6 として解決し、次に IPv4 (リモーティング サーバーがリッスンする既定のアドレス) として解決します。
したがって、IPv6 URL を使用するには、IPv6 でもリッスンするようにリモーティング サーバーをセットアップする必要があります。app.config を使用している場合は、次のようにします。
<system.runtime.remoting>
<application>
<service>
<wellknown mode="Singleton" type="MyApplication.MyServer, MyAssembly" objectUri="MyServer" />
</service>
<channels>
<channel ref="tcp" name="tcp6" port="9000" bindTo="[::]" />
<channel ref="tcp" name="tcp4" port="9000" bindTo="0.0.0.0" />
</channels>
</application>
</system.runtime.remoting>
または、プログラムで構成するには:
IDictionary properties = new Hashtable();
properties["name"] = "tcp6";
properties["port"] = 9000;
properties["bindTo"] = "[::]";
TcpServerChannel channel = new TcpServerChannel(properties, null);
ChannelServices.RegisterChannel(channel, false);
詳細については、このブログ投稿を参照してください。