Запуск службы во втором домене приложения

У меня есть объект, который я создаю в своем собственном домене приложений. Основная причина этого заключается в том, что он вызывает код, который я не контролирую (сторонняя dll), и если мне нужно прервать поток, я могу это сделать, а затем уничтожить AppDomain, чтобы быть уверенным, что ничего не случится. Эта часть отлично работает.

Тем не менее, этот объект также имеет ссылку на ServiceReference, который я контролирую. Поскольку ссылка на службу находится в объекте во втором домене приложений, я получаю исключение сериализации, поскольку служба не помечена как сериализуемая. Ссылка на службу - это просто прокси-сервер, сгенерированный для меня Visual Studio, и я не уверен в правильном способе решения этой проблемы.

Есть ли другой дизайн, который я должен использовать, или есть простой способ запустить службу из отдельного домена приложений?

Спасибо Скотт

2 ответа

Решение

Разобрался с моей проблемой. Мой тип был помечен как [Serializable] вместо того, чтобы выводить его из MarshalByRefObject. Как только я понял это, все, казалось, начало работать нормально.

Тем не менее, теперь, когда у меня есть несколько циклов ЦП, использующих эту новую модель, я не доволен ею и ищу другой путь. Я опубликую отдельный вопрос о дизайне позже.

Спасибо,

Скотт

Если я правильно понял ваш вопрос, вам нужно использовать что-то вроде.Net Remoting для использования объектов между доменами приложений.

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