.NET Remoting: Как активировать (удаленный) объект на сервере сразу? - PullRequest
0 голосов
/ 21 января 2011

У меня есть удаленный объект, размещенный в Window Service, для инициализации которого может потребоваться некоторое время.Проблема состоит в том, что первый клиентский запрос в основном не выполняется, потому что он занимает слишком много времени, но следующие запросы выполняются успешноМне интересно, есть ли способ создать удаленный объект сразу после запуска службы.Вот код в OnStart () службы:

    ChannelServices.RegisterChannel(new HttpChannel(8080), false);
    RemotingConfiguration.RegisterWellKnownServiceType(typeof(MyService), "MyService", WellKnownObjectMode.Singleton);

1 Ответ

0 голосов
/ 21 января 2011

Вы могли бы заставить OnStart вашего сервиса порождать процесс, который выполняет нулевую транзакцию - что-то безобидное, которое не имеет никакого эффекта, кроме принудительного создания удаленного объекта.

Еще одна вещь, которую вы могли бы сделать, - это запустить процесс запуска, выполнить всю дорогостоящую инициализацию и сохранить результат в каком-то объекте. Инициализация удаленного объекта тогда будет просто вопросом инициализации ссылки на этот предварительно созданный объект. Полагаю, вы могли бы сказать, что удаленный объект служит прокси для методов, предоставляемых объектом, созданным вами во время запуска.

Насколько я помню (я давно играл с удаленным доступом, поэтому могу ошибаться), сам сервис не может выступать в роли клиента и выполнять вызов для инициализации удаленного объекта.

...