2012-02-12 4 views
3

Я пытаюсь использовать JavaScript-движок Internet Explorer 9 из своей библиотеки .NET, используя COM-взаимодействие. Несмотря на то, что он отлично работает в тестовом коде, он не работает при запуске в ASP.NET (на IIS).COM Interop от ASP.NET

В моей библиотеке используется JavaScript-движок IE для загрузки компилятора CoffeeScript. Поэтому в идеале я хотел бы загрузить компилятор один раз, а затем повторно использовать один экземпляр двигателя IE. У меня есть блокировка звонков на движок скриптов, но я думаю, что все еще возникают проблемы с потоком, связанные с COM.

Возможно ли, чтобы объект COM вызывался из разных потоков .NET? (то есть потоков для различных веб-запросов IIS).

Я полный новичок COM, поэтому любые советы, ссылки и т. Д. Были бы замечательными.

+0

Интересно, если вам просто нужен компилятор CoffeeScript, можете ли вы разместить его в другом процессе? –

ответ

0

Как я помню, IIS не позволяет работать с потоками, т. Е. Создавать или управлять ими. Это небезопасно в веб-приложениях. Что вы можете сделать, так это хранить ваш компилятор в переменной сервера: приложение или сеанс

0

Многие объекты COM, которые вы, возможно, захотите использовать из приложения ASP.NET, были предназначены для среды рабочего стола, а не для серверной среды. Они могут не рассчитывать на вызовы из разных потоков, например, или могут зависеть от насоса сообщений пользовательского интерфейса для синхронизации.