首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF ServiceHost.Close()延迟

WCF ServiceHost.Close()延迟
EN

Stack Overflow用户
提问于 2009-06-22 01:50:00
回答 5查看 9.9K关注 0票数 6

我有一个简单的WCF双工TCP服务,我试图以编程方式停止它。如果我没有任何连接的用户,ServiceHost.Close()是非常快的,但是如果我有一个连接的用户,我发现Close()函数花费了相当多的时间,有时超过30秒。这是常见的行为吗?

另一方面,Abort()几乎是瞬间的,我很想用它来代替。

EN

回答 5

Stack Overflow用户

发布于 2009-06-22 02:07:44

也许是吧。docs声明

Close方法允许在返回之前完成任何未完成的工作。例如,完成所有缓冲消息的发送。

Close()有一个重载,它需要一个TimeSpan (如果超过timespan,则为throws )

Abort()看起来是无延迟停止WCF主机的最好方法。

票数 10
EN

Stack Overflow用户

发布于 2012-10-02 09:08:17

确保关闭客户端连接,如下所示:

代码语言:javascript
复制
var channel = factory.CreateChannel();
var channel.DoSomethingForMe();
(channel as ICommunicationObject).Close();

如果不在通道上执行Close(),那么服务器上的Close()会等待很长一段时间,即使您指定了很短的超时。

票数 8
EN

Stack Overflow用户

发布于 2009-08-30 19:05:19

如果您不介意终止任何正在进行的服务调用,那么Abort()是可行的方法。Close()是关闭服务的一种礼貌方式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1025240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档