在我的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无关。