WebServiceHost внутри дополнения VSTO

Я занимаюсь разработкой надстройки VSTO уровня приложения, которая состоит, среди прочего, из пользовательского интерфейса со встроенным Webbrowser управление и простой сервис в стиле REST, основанный на WCF WebServiceHost, Сервис доставляет контент, в частности флэш-фильмы, во встроенный браузер. Это работало как шарм до вчерашнего дня. По какой-то пока неизвестной причине (возможно, какое-то обновление.NET, которое изменило некоторую внутреннюю обработку), полное приложение Word теперь зависает, когда браузер загружает флэш-ролик со встроенного сервера. Он по-прежнему работает, когда я перемещаю код веб-сервера в отдельный процесс, и он также работает, когда флэш-ролик уже находится в кэше браузера, поэтому я совершенно уверен, что это комбинация показа и показа флэш-фильма как в надстройке. это вызывает проблему.

Я провел некоторое исследование (которое я должен был сделать раньше, возможно) и узнал, что многопоточность и надстройки VSTO не подходят друг другу. А запуск веб-сервиса наверняка подразумевает какую-то многопоточность.

Итак, мой вопрос: есть ли шанс заставить этот вид архитектуры работать надежно? Если так: что мне не хватает? Или мне лучше попробовать другой подход? Если так: что бы вы порекомендовали?

Примечание. Использование URL-адресов "file://" и, таким образом, загрузка содержимого непосредственно с диска - не вариант, так как я не могу гарантировать общий документирование и мне нужно установить некоторую логику между пользовательским интерфейсом и обслуживанием содержимого.

1 ответ

Надстройки VSTO являются STA, поэтому вам следует рассмотреть возможность изучения WCF и STA ( см. Соответствующую статью SO).

Вы всегда можете разместить службу WCF в качестве службы Windows, чтобы избежать проблем STA узла надстройки VSTO.

Другие вопросы по тегам