日期:2014-05-18  浏览次数:20886 次

100分求一个三层结构问题
我开发一个三层结构的系统,采用Remoting远程调用,方式是System.Runtime.Remoting.Channels.Tcp;如果服务器端和客户端都在局域网的话都没有问题(也就是客户端的访问服务器的地址为192.168.0.1),但当服务端在广域网的放(www.123456.com)时客户端访问调用远程方法,提示,远程主机没有反应(而套节字 <System.Net.Sockets> 是成功的,因为该软件有套节字 <System.Net.Sockets> 和Remoting),哪位遇到过呀!帮帮吧!

------解决方案--------------------
路过不清楚,友情UP!
------解决方案--------------------
用IP
------解决方案--------------------
不清楚 友谊up
------解决方案--------------------
学习!!
------解决方案--------------------
不是很懂,路过,帮顶一下
------解决方案--------------------
up
------解决方案--------------------
广域网还是用WEB服务代替Remoting
------解决方案--------------------
你改为HttpChannel试下
Tcp的不能穿透防火墙
你在局域网下就可以不用考虑这个问题了
但在广域网就要考虑下了
还有Http是基于Soap协议传输的
而Tcp是基于二进制流传输的

希望可以帮到你
------解决方案--------------------
HttpChannel
------解决方案--------------------
mark 学习
------解决方案--------------------
你这个问题属于跨域访问问题,可以尝试把.net remoting以web服务的形式发布,个人看法!
------解决方案--------------------
没用过remoting
------解决方案--------------------
Remoting? 学习
------解决方案--------------------
关注,帮顶.............
------解决方案--------------------
看看你的防火墙,现在都什么时候了,用WCF上吧
------解决方案--------------------
See下路由设置
mark下。
------解决方案--------------------
remoting用在局域网里面,跨域没试过
------解决方案--------------------
看一下服务器是不是双网卡,如果是,则需要手工绑定到外网网卡上。
这个问题我以前遇到过,最后发现是双网卡的问题。
------解决方案--------------------
改成HttpChannel
------解决方案--------------------
学习,学习
------解决方案--------------------
up
------解决方案--------------------
这是我写的客户端,
ChannelServices.RegisterChannel(tcpclientchannel, false);

RemoteUserManagerServerObject = (UserManageServer)(Activator.GetObject(
typeof(UserManageServer),
"tcp:// " + this.cbServer.Text.Trim() + ":8087/Server/UserManage "));

if (RemoteUserManagerServerObject == null)
{
MessageBox.Show( "远程对象连接失败…… ");
}

服务器端:
/*应用程序名称*/
RemotingConfiguration.ApplicationName = "Server ";

/*配置信道*/
BinaryServerFormatterSinkProvider serverProvider = new BinaryServerFormatterSinkProvider();
BinaryClientFormatterSinkProvider clientProvider = new BinaryClientFormatterSinkProvider();
serverProvider.TypeFilterLevel = TypeFilterLevel.Full;