【问题标题】:Best practice for calling an STA Visual Basic 6.0 COM object in a WCF service: Concurrent access在 WCF 服务中调用 STA Visual Basic 6.0 COM 对象的最佳实践:并发访问
【发布时间】:2012-02-22 19:07:56
【问题描述】:

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

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

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

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

确保并发用户可以在 WCF 服务中毫无问题地使用 STA COM 对象的最佳做法是什么?

【问题讨论】:

    标签: wcf com concurrency vb6 sta


    【解决方案1】:

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

    【讨论】:

    • 我相信它不应该被多个用户使用。您是否建议我应该使用互斥锁来防止多个用户同时访问 COM 对象?这是 WCF 服务中的一个很好的解决方案?
    猜你喜欢
    • 2014-03-20
    • 2016-03-27
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    相关资源
    最近更新 更多