首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebServiceHost: webservice方法中的阻塞调用会阻塞整个服务

WebServiceHost: webservice方法中的阻塞调用会阻塞整个服务
EN

Stack Overflow用户
提问于 2010-08-04 00:25:32
回答 2查看 774关注 0票数 0

我有一个使用WebServiceHost类的WCF webservice。

新类型(WebServiceHost(MyServiceClass));

如果我在webservice方法中使用了像Thread.Sleep这样的阻塞调用(只是一个例子),并且我调用了这个方法,那么当阻塞调用处于活动状态时,整个服务都是不可用的。

这是正常行为还是我的配置或使用中存在错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-05 00:53:54

好的,我知道了。如果在windows窗体GUI线程中启动服务,则可以添加

代码语言:javascript
复制
UseSynchronizationContext = false

发送到ServiceBehavior,请求将被并行处理。:)

票数 0
EN

Stack Overflow用户

发布于 2010-08-04 00:49:29

您的服务上的InstanceContextModeConcurrencyMode设置是什么?如果它被设置为Single,那么你的服务只有一个实例,所有的调用都被排队,所以如果你让服务线程休眠,它将阻塞所有后续的调用。

例如:

代码语言:javascript
复制
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
                 ConcurrencyMode = ConcurrencyMode.Single)]
public class MyService : IMyService
{
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3398555

复制
相关文章

相似问题

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