Здравствуйте, mayevski, Вы писали:
M>С именоваными event'ами проблема на платформах, отличных от Win32. Да и начальная специфика проектов .Net (веб-сервисы, ASP.NET) не предполагала широкой межпроцессной синхронизации...
Наверное из-за этого они отказались от именованых ивентов.
Шаманить с WinAPI тоже не хочется, т.к. задача того не оправдывает.
А задачка то в общем то примитивная. В небольшой dll'ке с интерфейсами Remoating объекта, сделать запуск известного процесса который эти Remoating объекты регистрирует и дождаться пока эти WellKnown типы появятся. Сам Remoating не знает какие у него WellKnown типы есть. По крайней мере я не неашел таких фичей.
А проверять наличие типов на локальной машине, создавая объекты и ловя exeption после таймаутов от неудачных обращений к их функциям не хорошо.
Остается такой вариант. Клиенту в цикле со Sleep'ами 10 милисекунд. Пытаться захватить именованый Mutex, если получается, то сразу освобождаем и дальше крутим цикл пока он не будет занят.
А на серваке после регистрации WellKnown типов, занимаем этот Mutex.
Ну и еще второй Mutex на серваке перед входом в код регистрации типов и каналов,чтобы защитить от входа из второй копии. Иначе рушится оба сервера.