Как мне получить список доменов приложений, созданных моим приложением?

У меня есть служебное приложение, которое создает AppDomain в процессе его использования для длительных задач. Я отслеживал их, сохраняя их в Hashtable с уникальным идентификатором.

После завершения задачи приложение-служба выгружает домен приложения, выделенный для этой задачи, а затем удаляет его из Hashtable домена приложения.

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


person Kev    schedule 05.10.2008    source источник


Ответы (3)


AFAIK, вам нужно вести свой собственный список - как вы уже делаете.

person Marc Gravell    schedule 05.10.2008
comment
Ага ... после пары месяцев исследований. Кажется, это действительно так. - person Kev; 08.01.2009

Если вы используете неуправляемые API, вы можете настроить DomainManager, который вызывается при каждом создании AppDomain, и вы обнаружите, что многие части создают свои собственные AppDomains, например WCF. Подробное объяснение см. В Настройка среды CLR Microsoft .NET Framework.

Другой путь - использование API отладки.

person Giulio Vian    schedule 07.05.2009
comment
Джулио - спасибо за ответ и спасибо за ссылку на книгу. Не могу поверить, что пропустил это, выглядит завораживающе. - person Kev; 07.05.2009

Думаю, вы хотели бы также ознакомиться с этой статьей - «Работа с доменами приложений в WPF ".

person Community    schedule 28.05.2009
comment
+1 .. infosysblogs.com/microsoft/2008/10/ выглядит как очень исчерпывающая статья! - person Rob; 28.05.2009