双IP计算机运行Remoting服务端的问题
先说一下情况:
Channel类型:TCP,端口9999
对象类型:WellKnownObjectMode.Singleton
服务端有一块网卡,两个IP地址:192.168.0.1(内网) 和 172.17.0.1(外网IP,虚构的)
服务端软件启动后,虽然可以同时在两个IP地址侦听,192和172两个网段的客户端(分别指定服务端的内、外网IP地址)在第一次调用远程对象的时候都是成功,但第二次调用远程对象的时候,只有内网或者外网的客户端能调用成功。
比如一个外网客户端使用172.17.0.1创建了远程对象,第一次调用是成功的,但这个客户端在第二次调用这个远程对象的时候却失败了,经调试,发现第二次调用时,这个客户端使用的IP地址是192.168.0.1,也就是说第一次调用远程对象的时候,服务端把自己的192.168.0.1地址带到了客户端,客户端在第二次调用的时候就使用了那个地址,我再用代码说明一下:
//创建远程对象
CRoot robj = (CRoot)Activator.GetObject(typeof(CRoot), "tcp://172.17.0.1:9999/CRoot");
//第一次调用,成功
robj.Test1();
//第二次调用失败,这次调用竟然使用的地址192.168.0.1
。
。
。
robj.Test2();
如何端该如何做,才能使两个网段的客户端软件都能正常运行,并且使用同一端口9000。