WCF InstanceContextMode单一和异步通信

时间:2013-06-05 08:27:16

标签: c# wcf

在我的WCF服务端,我有一个定义为:

的XXService
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]  

XXService使用ServiceHost(类,地址)托管在托管应用程序中。我提供了一个类而不是接口,因为我的类有自定义构造函数。

我的服务假设要进行并行操作,不得阻止呼叫 我使用IAsyncResult模式,在我的BeginOperation上,我将实际工作发送到 ThreadPool.QueueUserWorkItem 以完成工作,以避免阻止我的XXService。
这种模式是否正确?

服务的作用是同步的。

我的关注是我应该使用PerCall?使用PerCall而不是做我做的事情有什么好处(因为我的XXService需要自定义构造函数,所以会使用Unity和WCF的开销)?

如果我的XXService实例将抛出未处理的异常,它将使ServiceHost出错。但这与InstanceContext single / percall无关。

1 个答案:

答案 0 :(得分:0)

您可以通过此link来更好地了解WCF中的并发和实例化。