我有一个使用WebServiceHost类的WCF webservice。
新类型(WebServiceHost(MyServiceClass));
如果我在webservice方法中使用了像Thread.Sleep这样的阻塞调用(只是一个例子),并且我调用了这个方法,那么当阻塞调用处于活动状态时,整个服务都是不可用的。
这是正常行为还是我的配置或使用中存在错误?
发布于 2011-06-05 00:53:54
好的,我知道了。如果在windows窗体GUI线程中启动服务,则可以添加
UseSynchronizationContext = false发送到ServiceBehavior,请求将被并行处理。:)
发布于 2010-08-04 00:49:29
您的服务上的InstanceContextMode和ConcurrencyMode设置是什么?如果它被设置为Single,那么你的服务只有一个实例,所有的调用都被排队,所以如果你让服务线程休眠,它将阻塞所有后续的调用。
例如:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Single)]
public class MyService : IMyService
{
}https://stackoverflow.com/questions/3398555
复制相似问题