2012-06-26 171 views
0

我有一个COM对象,它创建一个WCF服务的实例并将一个句柄作为回调传递给自己。 COM对象被标记/初始化为MTAWCF服务和COM互操作回调

问题是调用回调函数的每个WCF服务实例都发生在同一个线程上,因此它们一次只能处理一个,导致会话超时。 WCF服务是基于会话的,我不确定这是否有任何区别。

回答

1

您可以使用CallbackBehavior属性修饰回调实现,并将ConcurrencyMode设置为ConcurrencyMode.Multiple。默认设置为ConcurrencyMode.Single,一次限制为一个服务回调。当然,如果你这样做,你必须确保你的回调实现是线程安全的。