|
проблема со "спонсорным" класом в Remoting
|
|||
---|---|---|---|
#18+
Из книги Маклис С., Нефтел Дж., Уильяме К. Microsoft .NET Remoting. Там есть пример обявления спонсора жизни удаленого обэкта (пример под VS2003 а я пользуюсь VS2005) , будто-бы делаю все правильно: Клиентскую форму наследую от ISponsor public partial class ClientForm : Form, ISponsor { private ILease ServerLease; ......... Опредиляю метод public TimeSpan Renewal(ILease lease) { return TimeSpan.FromMinutes(5); } И в событии старта формы делаю private void ClientForm_Load(object sender, EventArgs e) { ............... ServerLease = (ILease)Chat.InitializeLifetimeService(); ServerLease.Register((ISponsor)this); } Прога работает класно до тех пор пока не заканчивается LeaseTime. Метод Renewal не запускается. И обращение double t1 = ServerLease.CurrentLeaseTime.TotalSeconds; вызывает исключение {"Requested Service not found"} Что я делая неправельно ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2006, 22:46 |
|
проблема со "спонсорным" класом в Remoting
|
|||
---|---|---|---|
#18+
Уже пробовал и пример с МСДН2005: там спонсорский клас наследуется еще и от MarshalByRefObject class ClientSponsor : MarshalByRefObject, ISponsor { public TimeSpan Renewal(ILease lease) { return TimeSpan.FromMinutes(5); } } Кто работал с "ремотингом" отзовитесь ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2006, 16:58 |
|
проблема со "спонсорным" класом в Remoting
|
|||
---|---|---|---|
#18+
МОЖЕТ ЭТО ПОМОЖЕТ Единственное свойство, которое разрешается изменять у объекта после определения его аренды, — CurrentLeaseTime. Оно возвращает оставшееся время аренды. Обновить аренду объекта могут: • клиентское приложение (вызовом метода ILease.Renew); • объект-спонсор. Следующий код демонстрирует обновление аренды объекта из клиентского приложения: RemoteType ob] - new Remotelype(); ILease lease = (ILease)RemotingServices.GetLifetimeService{ob]): TimeSpan expireTime = lease.Renew(TimeSpan.FromSeconds{3Q}); ЭТО ИЗ КНИГИ ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2006, 07:32 |
|
проблема со "спонсорным" класом в Remoting
|
|||
---|---|---|---|
#18+
JeepikМОЖЕТ ЭТО ПОМОЖЕТ Единственное свойство, которое разрешается изменять у объекта после определения его аренды, — CurrentLeaseTime. Оно возвращает оставшееся время аренды. Обновить аренду объекта могут: • клиентское приложение (вызовом метода ILease.Renew); • объект-спонсор. Следующий код демонстрирует обновление аренды объекта из клиентского приложения: RemoteType ob] - new Remotelype(); ILease lease = (ILease)RemotingServices.GetLifetimeService{ob]): TimeSpan expireTime = lease.Renew(TimeSpan.FromSeconds{3Q}); ЭТО ИЗ КНИГИ таким способом мы явно продливаем время жизни, а когда время само по сибе заканчивается и сервер сам должен опрашивать спонсоров. Но это почемуто не работает ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2006, 11:25 |
|
проблема со "спонсорным" класом в Remoting
|
|||
---|---|---|---|
#18+
Кстати книга Маклис С., Нефтел Дж., Уильяме К. Microsoft .NET Remoting.плохая: сначала куча теории и сразу же огромный пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2006, 11:28 |
|
проблема со "спонсорным" класом в Remoting
|
|||
---|---|---|---|
#18+
Последний вопрос может кто знает: "спонсоры" должны работать в режиме клиентской активации, или в режиме серверной активации тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2006, 13:10 |
|
|
start [/forum/topic.php?fid=19&fpage=37&tid=1398093]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 153ms |
0 / 0 |