remoting问题(分不够再加)

时间:2022-02-17 16:20:26
我用remoting技术开发一个软件,在局域网内可以正常运行,但如果是公网外的一个客户端访问就出现“服务器积极拒绝的”异常
请问是什么原因造成的呢,我的服务已经通过路由的NAT把内网端口映射到外网了

17 个解决方案

#1


使用WCF吧,方便很多了

估计是 访问的地址 和公开的地址 不一致的缘故

#2


up

#3


MARK

#4


经过测试,公网地址应该是没错的

#5


mark

#6


  程序没问题,那就只有网络了.   先检查防火墙,然后ping.   仔细检查下映射,最好在本地IIS上建个站点,到公网去访问IP看是否能正常访问,访问成功的话说明映射是没问题的。  

#7


映射没问题,防火墙也关了,如果两部机器在内网就可以,但如果一部机器在公网就出现服务器拒绝的错误
还需要说明一下,我用的是客户端激活

#8


经过排除发觉是客户端激活的问题,客户端注册的时候可以,但调用方法的时候就出错了
下面是客户端的部分代码
以下都没问题:
                RemotingConfiguration.RegisterActivatedClientType(
                    typeof(netbase),
                    "tcp://58.62.230.216:14000/HT.NETDB");
                frmMain.network = new netbase();
异常在这里抛出
frmMain.db = frmMain.network.GetMainObject(Dns.GetHostName(),txtUID.Text, txtPED.Text);

#9


可能是所设置的 端口 冲突了

#10


我也觉得是端口

#11


端口应该没有冲突,他的异常是服务器积极拒绝

#12


  这些错误我也遇到过,出问题都是由于自己没多加注意的一些细节问题.    
 了解下别人的意见,自己仔细排查一下. 没多大问题的. 例如机器上的杀毒软件之类的,或者其他软件占用端口. 用netstat -an 看看端口是否处于监听.

#13


不懂,帮顶

#14


不懂,帮顶

#15


http://topic.csdn.net/t/20060411/08/4677231.html
看看是不是这位网友说的原因: 
服务端限制了,到服务端代码看看   
                          Socket   socket;   
                          socket.Listen(10);你把它改为100或10000

#16


引用 8 楼 SAMINCsharp 的回复:
经过排除发觉是客户端激活的问题,客户端注册的时候可以,但调用方法的时候就出错了 
下面是客户端的部分代码 
以下都没问题: 
                RemotingConfiguration.RegisterActivatedClientType( 
                    typeof(netbase), 
                    "tcp://58.62.230.216:14000/HT.NETDB"); 
                frmMain.network = new netbase(); 
异常在这里抛出 
frmMain.db = frmMain.network.GetMainOb…


你测试下,Dns.GetHostName()是不是你要的,也就是不是你映射的地址?我们怀疑你映射的地址有问题

#17


问题解决了,是激活的问题,改用Singleton就可以了,应该是客户端激活服务器无法获取正确IP的问题,具体为什么请大侠门告诉我,谢谢

#1


使用WCF吧,方便很多了

估计是 访问的地址 和公开的地址 不一致的缘故

#2


up

#3


MARK

#4


经过测试,公网地址应该是没错的

#5


mark

#6


  程序没问题,那就只有网络了.   先检查防火墙,然后ping.   仔细检查下映射,最好在本地IIS上建个站点,到公网去访问IP看是否能正常访问,访问成功的话说明映射是没问题的。  

#7


映射没问题,防火墙也关了,如果两部机器在内网就可以,但如果一部机器在公网就出现服务器拒绝的错误
还需要说明一下,我用的是客户端激活

#8


经过排除发觉是客户端激活的问题,客户端注册的时候可以,但调用方法的时候就出错了
下面是客户端的部分代码
以下都没问题:
                RemotingConfiguration.RegisterActivatedClientType(
                    typeof(netbase),
                    "tcp://58.62.230.216:14000/HT.NETDB");
                frmMain.network = new netbase();
异常在这里抛出
frmMain.db = frmMain.network.GetMainObject(Dns.GetHostName(),txtUID.Text, txtPED.Text);

#9


可能是所设置的 端口 冲突了

#10


我也觉得是端口

#11


端口应该没有冲突,他的异常是服务器积极拒绝

#12


  这些错误我也遇到过,出问题都是由于自己没多加注意的一些细节问题.    
 了解下别人的意见,自己仔细排查一下. 没多大问题的. 例如机器上的杀毒软件之类的,或者其他软件占用端口. 用netstat -an 看看端口是否处于监听.

#13


不懂,帮顶

#14


不懂,帮顶

#15


http://topic.csdn.net/t/20060411/08/4677231.html
看看是不是这位网友说的原因: 
服务端限制了,到服务端代码看看   
                          Socket   socket;   
                          socket.Listen(10);你把它改为100或10000

#16


引用 8 楼 SAMINCsharp 的回复:
经过排除发觉是客户端激活的问题,客户端注册的时候可以,但调用方法的时候就出错了 
下面是客户端的部分代码 
以下都没问题: 
                RemotingConfiguration.RegisterActivatedClientType( 
                    typeof(netbase), 
                    "tcp://58.62.230.216:14000/HT.NETDB"); 
                frmMain.network = new netbase(); 
异常在这里抛出 
frmMain.db = frmMain.network.GetMainOb…


你测试下,Dns.GetHostName()是不是你要的,也就是不是你映射的地址?我们怀疑你映射的地址有问题

#17


问题解决了,是激活的问题,改用Singleton就可以了,应该是客户端激活服务器无法获取正确IP的问题,具体为什么请大侠门告诉我,谢谢