我有一个COM对象,它创建一个WCF服务的实例,并将句柄作为回调传递给自己。 COM对象标记/初始化为MTA。
问题是调用回调的WCF服务的每个实例都发生在同一个线程上,因此它们一次被处理一个,这会导致重负载下的会话超时。 WCF服务是基于会话的,我不确定这是否有所不同。
答案 0 :(得分:1)
您可以使用CallbackBehavior
属性修饰回调实现,并将ConcurrencyMode
设置为ConcurrencyMode.Multiple
。默认设置为ConcurrencyMode.Single
,一次限制为一个服务回调。当然,如果你这样做,你必须确保你的回调实现是线程安全的。