关于WCF的一个实际有关问题

关于WCF的一个实际问题

我先创建一个wcf连接,代码如下

            NetTcpBinding binding = new NetTcpBinding();
            binding.Security.Mode = SecurityMode.None;
            server = ChannelFactory<IWcfService>.CreateChannel(binding, 
                new EndpointAddress("net.tcp://"+AppSetting .strServer+":"+AppSetting .nPort .ToString ()+"/WcfService"));  


然后去调用wcf的服务,,,调用成功了

UserInfo user= server.LoginUser(AppSetting.strUserNo, AppSetting.strPwd)


然后过了30分钟后我调用另一个服务,就调用不了,是不是我又必须要执行一次创建wcf连接的代码才行还是有更好的办法


------解决思路----------------------
这么长时间,链路不可能保持的
wcf不太熟悉,个人感觉底层还是socket,
要实现socket长连接,必须通过心跳之类的方式维持
否则就会超时断开
------解决思路----------------------
关于WCF的一个实际有关问题
WCF正常不都是用完后就关闭的么?你怎么一直不关闭呢……
------解决思路----------------------
要用的时候再重新创建连接
------解决思路----------------------
引用:
关于WCF的一个实际有关问题
WCF正常不都是用完后就关闭的么?你怎么一直不关闭呢……


因为它用是TCP绑定的,其实内部就是用两个链接来对接的,实现类似socket一样的功能
------解决思路----------------------
如果只是登陆验证,我觉得你没有必要用TCP 绑定吧? 
TCP绑定没有使用过,我想会不会是timeout了,会自动断开连接呢? 所以这种wcf下的tcp绑定也要做心跳处理呢 ?
------解决思路----------------------
是可以设置超时时间的。 ServiceEndpoint的config
------解决思路----------------------
用的时候创建一下,用完关掉。改超时时间没用的,即使你设置超时为100天,保不齐有人100天都不关程序,然后在第101天发现什么都干不了了。。。。
------解决思路----------------------
引用:
关于WCF的一个实际有关问题
WCF正常不都是用完后就关闭的么?你怎么一直不关闭呢……
我也有同样的疑问
------解决思路----------------------
user 信息放消息头里
WCF 使用完关闭(看情况)
没必要刻意做个登录函数
------解决思路----------------------
引用:
Quote: 引用:

用的时候创建一下,用完关掉。改超时时间没用的,即使你设置超时为100天,保不齐有人100天都不关程序,然后在第101天发现什么都干不了了。。。。


就是,你说得对,我在网上没有找到关于wcf读取连接状态,然后打开连接到方法,有这方面的代码吗


            using (var cli = new xxxClient(binding, address))
            {
                var result = cli.方法;
            }


把你定义好的binding和address传进去就行了。