2009-03-16 2 views
3

Мне нужно инкапсулировать приложение VB6 как COM-объект, который будет вызываться IIS. Одна из библиотек, используемых приложением VB6, не является потокобезопасной.Запуск non-thread-safe dll в многопоточном окне http-сервера

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

Я где-то читал, что ActiveX exes запускает каждый экземпляр в другом процессе, этого было бы достаточно?

ответ

1

Ваше сообщение будет прочитано на моделях для сборки COM и квартиры, link text. В то время как ваши действия возможны, ваша производительность будет ужасной, потому что вы в конечном итоге будете использовать однопоточные квартиры, поэтому все запросы будут сериализованы. Вам действительно следует исследовать создание отдельного процесса для каждого из этих запросов.

+0

Я думал, что это будет делать ActiveX exe: создать новый процесс для каждого вызова. Это неверно? – cfischer

+0

Я имею дело только с COM-объектами как с DLL, но из быстрого просмотра MSDN для этого может быть использован исполняемый файл ActiveX вне процесса. Вместо того, чтобы пытаться перенести приложение с отверстиями, вы должны создать небольшое тестовое приложение. – LanceSc