您好:
在程序开发中遇到如下问题:
先请参看代码:
TcpChannel chan1,chan2;
//注册第一个
chan1 = new TcpChannel(8085);
ChannelServices.RegisterChannel(chan1,false);
RemotingConfiguration.RegisterWellKnownServiceType
(typeof(GameManageSystem.GameUser),
"GameUser",
WellKnownObjectMode.Singleton);
//注册第2个
chan2 = new TcpChannel(8086);
ChannelServices.RegisterChannel(chan2,false);
RemotingConfiguration.RegisterWellKnownServiceType
(typeof(GameManageSystem.GameUser),
"GameUser2",
WellKnownObjectMode.Singleton);结果是第一个注册成功,第2个提示我“信道'tcp'已注册”
请问这是什么原因:?

解决方案 »

  1.   

    在MSDN中写着可以同时注册多个同类型的信道,而且,我在测试的时候也只是第一次会出现错误,而再次开启的时候就没这个问题,但这第一次又是怎么回事?
      

  2.   

    在MSDN中写着可以同时注册多个同类型的信道,类型应该是指TCP,HTTP等吧,不同的端口号不能看作类型不同
      

  3.   

    您不能在 AppDomain 中用同一名称注册两个信道。默认情况下,HttpChannel 的名称是“http”,而 TcpChannel 的名称是“tcp”。因此,如果您想要注册相同类型的两个信道,则必须通过配置属性为其中的一个信道指定不同名称。
      

  4.   

    ClientDC(萧柳) 是正解。msdn上有说明的。默认的名称是tcp,http,ipc。多个相同类型的通道需要自己指定不同的名字来区别,端口不区分。比如 tcp1,tcp2...