WCF采用 netTcpBinding 发生的Socket errors

最近在项目中采用 Windows service 作为WCF services的宿主, 在服务和客户端的调用上没有发生如何的异常和错误,但是经常发生下述错误:

“System.ServiceModel.CommunicationException: The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '10675199.02:48:05.4775807'”

下面是一个解决方案:当使用WCF 服务使用 netTcpBinding 时,需要在客户端代理调用方法close()关闭代理,将服务的实例放回到池中。

WCF服务使用WSHttp或者BasicHttp的时候没有这个问题。

作者: 自由、创新、研究、探索……
出处:http://shanyou.cnblogs.com/
版权:本文版权归作者和博客园共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
个人网站: http://www.openbeta.cn
Tag标签: wcf
posted @ 2008-09-22 17:28 geff zhang 阅读(721) 评论(6)  编辑 收藏 网摘 所属分类: WCF

  回复  引用  查看    
#1楼2008-11-22 12:18 | 刘将      
请教一下在那边可以把客户端代理调用方法close()关闭代理,我是生成的代码

  回复  引用  查看    
#2楼[楼主]2008-11-22 12:39 | geff zhang      
@刘将
ClientBase有个方法是close,调用这个方法就可以了

  回复  引用  查看    
#3楼2008-11-22 12:54 | 刘将      
谢谢你回答,我还是不太明白,比如说Client:ClientBase(ITest)
{
public test1(){}
}
client aa=new client();
aa.test1()前close还是后close呢?总是会总不能使用dispose对像

  回复  引用  查看    
#4楼[楼主]2008-11-22 15:56 | geff zhang      
test1()是个方法吧,写法上有错哦 aa.test1()之后close
  回复  引用  查看    
#5楼2008-11-24 10:04 | 刘将      
test1()是一个方法,事实上在在调用test1()时就报错了,还没有close(),所以close()的作用就没有用了。
  回复  引用  查看    
#6楼[楼主]2008-11-24 21:56 | geff zhang      
@刘将
这说明你的test1()有问题了

发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1296061





相关文章:

相关链接: