По какой-то причине, после использования IpcChannel и отключения его, иногда именованная программа остается открытой, и поток ожидает ее. Я не могу сделать это по требованию в среде отладки, но это происходит от 5 до 10 раз в день в нашей производственной среде. Плохой эффект, который это имеет, заключается в том, что он останавливает меня от разгрузки appdomain, поскольку существует бесконечный поток, ожидающий бесконечно на именованном канале (в нативном методе) ... в моем коде нет фрейма в стоп-кадре - это внутреннее. сеть нить. Если я запустил обработчик процессов и нашел именованный дескриптор канала, который был оставлен открытым и принудительно закрыл его, тогда все снова становится счастливым, appdomain разгружается в порядке. Возможно, я что-то делаю неправильно, поскольку я не работал с IpcChannels очень много ... мой код на стороне сервера находится здесь: http://pastebin.com/f6e2583b9, если кто-то хочет заглянуть ... это работает на полностью исправленном сервере Server2003/.NET 2.0..NET IpcChannel не надежно очищается правильно?
Как обходное решение для уродливых задниц, я думаю, что я буду отслеживать каждый создаваемый канал, а затем периодически проверять, чтобы они были закрыты правильно, а затем при разгрузке appdomain я принудительно закрываю любые оставшиеся трубы висит .... может ли кто-нибудь указать мне в правильном направлении, как я могу это сделать? Я знаю название трубы .... но я не уверен, как проверить, если он все еще открыт или как закрыть любые существующие дескрипторы ...