2

我有一个调用STA Visual Basic 6.0 COM 对象的 WCF 服务。如果只有一个客户端使用该服务,一切正常,但是一旦并发用户开始调用它,我就会遇到麻烦,并且在调用 COM 对象的方法之一时遇到各种随机错误。

起初,我在Calling an STA COM Object from a WCF Operation 一文的帮助下添加了对 STAOperationBehavior 属性的支持,从而解决了这个问题。

好吧,它帮了很多忙,有一段时间一切似乎都运行良好,但现在当多个用户调用该服务时,我开始在特定服务器上收到 System.AccessViolationException 错误。

我读过这可能是一个线程问题,我应该在我的网络服务中使用互斥锁或实例上下文。

确保并发用户可以在 WCF 服务中使用 STA COM 对象而不会出现任何问题的最佳实践是什么?

4

1 回答 1

3

如果该对象不是为多个用户同时使用而设计的,那么您根本不能允许多个用户使用它。

于 2012-02-22T19:18:53.170 回答