| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Распределённые приложения и сеть > глюки с сообщениями |
| Автор: Alexsar 1.10.2006, 00:49 | ||||||
| Есть проблема пишу расперделённое приложение, проблема заключется в следущем, при вызове делегатов удалённого объекта не у всех клиентов срабатывают обработчики. Почти всегда клиент потом просто висит(если это виндовозовская форма), если простое консольное приложение, то в случае 2 клиентов работает всё почти нормально, а вот когда больше клиентов начинаюся неприятности вот код, он практически идентичен, написанному в известной книге сервер:
удалённый объект:
и сам клиент:
в чём дело не пойму, вроде всё должно работать, а почему то сообщения до некоторых клиентов не доходят, а с формами вообще страшное дело клиент-инициатор приказывает долго жить, а другие клиенты перехватывают сообщения в 50%hmmm инструмент-студия 8 ЗЫ не хочу создавать новую тему, поэтому ещё один вопрос, где можно достать информацию по сокетам и как с ними работать в С#, желательно на русском языке что я не так сделал? |
| Автор: Alexsar 14.10.2006, 13:27 |
| всем привет протестил тут консольных клиентов, оказалось что удалённый объект отключаеся через минуту-полторы, т.е. функция InitializeLifetimeService() не перегружается в чём дело? может это надо делать через конфиг файл, но как, какие они должны быть, чтоб обеспечили эквивалентность коду? и ещё может у кого нибудь есть примеры нормально работающих клиент-серверных приложений? |
| Автор: Alexsar 22.10.2006, 00:12 |
| всем доброй ночи это снова я проблему так и не устранил может у меня студия глючит? компильните мой код(у кого есть время и желание а то совсем разочаруюсь ремотинге, поскольку приложения на пару минут никому не нужны ЗЫ а как на счёт конфигурационного файла? |
| Автор: Alexsar 27.10.2006, 22:50 | ||
вопрос: как понимать следущее?
так где надо вызывать? кстати он вызывается(метод InitializeLifetimeService) но клиент глохнет короче тёмный лес, и с ним мне предстоит возицца будем дальше копать |
| Автор: mr.DUDA 28.10.2006, 11:42 |
Ещё раз: вызывать надо клиентом, но метод исполняться должен на сервере. Это обычный remoting-овский метод, содержащий строчку с InitializeLifetimeService(). Проверить очень просто: податтачиться к серверу и поставить брейкпоинт на InitializeLifetimeService(), если не выполнится - значит не то. |
| Автор: Alexsar 6.11.2006, 02:12 |
| всем привет;) всё полечилось, вместо Invoke надо использовать BeginInvoke(m_spik, null, this) тока вот не всегда доходит вызов до клиента (ну где то примерно в 10% случаев), бывает с задержкой, а бывает через пару (величина не постоянная) секунд может это сервер дурит, и имеет смысл сделать масштабирование, т.е. 1 конечная точка и пару серверов? или может есть другой способ оптимизировать работу приложения? т.е. что б сообщения гарантированно доходили до клиента пусть даже с незначительной задержкой. буду оч рад совету |