Рекомендации по вызову COM-объекта STA Visual Basic 6.0 в службе WCF: одновременный доступ - PullRequest
2 голосов
/ 22 февраля 2012

У меня есть служба WCF, которая вызывает STA Visual Basic 6.0 COM-объект.Все работает нормально, если только один клиент использует сервис, но как только его начинают вызывать параллельные пользователи, у меня возникают проблемы и возникают всевозможные случайные ошибки при вызове одного из методов объекта COM.

Сначала я исправил эту проблему, добавив поддержку атрибута STAOperationBehavior с помощью статьи Вызов COM-объекта STA из операции WCF .

Хорошо, это очень помогло, и в течение некоторого времени все, казалось, работало хорошо, но теперь я начал получать ошибки System.AccessViolationException на определенном сервере, когда более одного пользователя вызывает службу.

Я читал этоэто, вероятно, проблема потока, и я должен использовать mutex или instancecontext в своем веб-сервисе.

Каков наилучший способ убедиться, что одновременные пользователи могут без проблем использовать COM-объект STA в сервисе WCF?

1 Ответ

3 голосов
/ 22 февраля 2012

Если объект не предназначен для одновременного использования несколькими пользователями, вы просто не можете позволить его использовать нескольким пользователям.

...