WebServiceHost внутри дополнения VSTO - PullRequest
1 голос
/ 23 февраля 2012

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

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

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

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

1 Ответ

1 голос
/ 27 февраля 2012

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

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

...