Re[2]: пример кода , было бы хорошо
От: SeninAndrew Россия  
Дата: 01.11.09 18:59
Оценка:
Здравствуйте, tealex, Вы писали:

T>может ошибка синхронизации ?


Похоже на то. Я вот поотлаживал повнимательней и понял, что происходит следующее. В промежуток между моментом, когда я регистрирую на сервере Wellknown тип (у меня он называется StatisticsServer), и моментом, когда я вызываю RemotingServices.Marshal для созданного мной объекта, клиент успевает подключиться к серверу и тем самым спровоцировать создание другого объекта StatisticsServer. И поэтому в функции Marshal генерируется исключение. Мне необходимо самому создавать объект StatisticsServer, чтобы инициализировать его должным образом. Я вижу 2 варианта решения:

1. Перенести регистрацию и вызов Marshal в одну функцию (сейчас между их вызовами проходит пара секунд и делается это в разных потоках).
2. При создании своего объекта проверять, не был ли он уже создан и если да, то использовать предыдущий объект (проводить доинициализацию).

Проще первый вариант. Но возникает вопрос, достаточно ли будет вызывать функции в одном потоке или теоретически все же возможно, что между регистрацией и Marshal клиент успеет подключиться, и ситуация повторится?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.