关于WCF的一个实际有关问题
关于WCF的一个实际问题
我先创建一个wcf连接,代码如下
然后去调用wcf的服务,,,调用成功了
然后过了30分钟后我调用另一个服务,就调用不了,是不是我又必须要执行一次创建wcf连接的代码才行还是有更好的办法
------解决思路----------------------
这么长时间,链路不可能保持的
wcf不太熟悉,个人感觉底层还是socket,
要实现socket长连接,必须通过心跳之类的方式维持
否则就会超时断开
------解决思路----------------------
WCF正常不都是用完后就关闭的么?你怎么一直不关闭呢……
------解决思路----------------------
要用的时候再重新创建连接
------解决思路----------------------
因为它用是TCP绑定的,其实内部就是用两个链接来对接的,实现类似socket一样的功能
------解决思路----------------------
如果只是登陆验证,我觉得你没有必要用TCP 绑定吧?
TCP绑定没有使用过,我想会不会是timeout了,会自动断开连接呢? 所以这种wcf下的tcp绑定也要做心跳处理呢 ?
------解决思路----------------------
是可以设置超时时间的。 ServiceEndpoint的config
------解决思路----------------------
用的时候创建一下,用完关掉。改超时时间没用的,即使你设置超时为100天,保不齐有人100天都不关程序,然后在第101天发现什么都干不了了。。。。
------解决思路----------------------
我也有同样的疑问
------解决思路----------------------
user 信息放消息头里
WCF 使用完关闭(看情况)
没必要刻意做个登录函数
------解决思路----------------------
把你定义好的binding和address传进去就行了。
我先创建一个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正常不都是用完后就关闭的么?你怎么一直不关闭呢……
------解决思路----------------------
要用的时候再重新创建连接
------解决思路----------------------
因为它用是TCP绑定的,其实内部就是用两个链接来对接的,实现类似socket一样的功能
------解决思路----------------------
如果只是登陆验证,我觉得你没有必要用TCP 绑定吧?
TCP绑定没有使用过,我想会不会是timeout了,会自动断开连接呢? 所以这种wcf下的tcp绑定也要做心跳处理呢 ?
------解决思路----------------------
是可以设置超时时间的。 ServiceEndpoint的config
------解决思路----------------------
用的时候创建一下,用完关掉。改超时时间没用的,即使你设置超时为100天,保不齐有人100天都不关程序,然后在第101天发现什么都干不了了。。。。
------解决思路----------------------
我也有同样的疑问
------解决思路----------------------
user 信息放消息头里
WCF 使用完关闭(看情况)
没必要刻意做个登录函数
------解决思路----------------------
using (var cli = new xxxClient(binding, address))
{
var result = cli.方法;
}
把你定义好的binding和address传进去就行了。