Активация клиента

Этот раздел относится к технологии прежних версий, которая сохраняется для обеспечения обратной совместимости с существующими приложениями и не рекомендуется для разработки новых приложений. Сейчас распределенные приложения следует создавать с помощью  Windows Communication Foundation (WCF).

Объекты, активируемые клиентом, — это объекты, время существования которых контролируется доменом вызывающего приложения, как если бы эти объекты были локальными объектами клиента. При создании объекта, активируемого клиентом, клиент осуществляет вызов сервера. Сервер создает экземпляр удаленного объекта и возвращает ссылку на объект (ObjRef) клиенту. Клиент использует эту ссылку ObjRef, чтобы создать прокси для удаленного объекта. Каждый раз, когда клиент создает экземпляр активируемого клиентом объекта, он получает прокси для взаимодействия с конкретным серверным экземпляром удаленного объекта, пока не истечет время аренды и память не освободится.

В модели COM клиенты сохраняют объект в памяти путем поддержания ссылки на этот объект. Когда последний клиент удаляет последнюю ссылку, объект может удалять себя. Активация клиента обеспечивает для клиента такое же управление через время существования серверного объекта, но без сложных механизмов поддержания ссылок или постоянной проверки связи с сервером или клиентом. Вместо этого объекты, активируемые клиентом, используют аренду времени существования, чтобы определять время, в течение которого они будут продолжать существовать. Когда клиент создает удаленный объект, он может задать промежуток времени по умолчанию, в течение которого должен существовать данный объект. Когда это время существования по умолчанию истекает, объект запрашивает у клиента, должен ли он продолжать существование, и если да, то в течение какого времени. Если клиент в данный момент не доступен, также задается время по умолчанию, в течение которого серверный объект должен ожидать при попытке обратиться к клиенту, прежде чем пометить себя готовым к сборке мусора. Клиент может также затребовать неопределенное время существования по умолчанию, чтобы не допустить уничтожения удаленного объекта, пока домен серверного приложения не будет ликвидирован. Различие между этим подходом и неопределенным временем существования, активируемым сервером, заключается в том, что объект, активируемый сервером, обслуживает запросы всех клиентов соответствующего типа, а экземпляры, активируемые клиентом, — только клиенты и ссылки, отвечающие за их создание. Дополнительные сведения см. в разделе Аренда времени существования.

Чтобы создать экземпляр типа, активируемого клиентом, клиенты либо настраивают свои приложения программным образом (или с помощью файла конфигурации) и осуществляют вызов new (New в Visual Basic), либо передают конфигурацию удаленного объекта при вызове метода Activator.CreateInstance.

Дополнительные сведения о создании экземпляра типа, активируемого клиентом, см. в разделе Практическое руководство. Создание экземпляра типа, активируемого клиентом.

Дополнительные сведения об использовании файла конфигурации для настройки ведущего приложения для создания типов, активируемых клиентом, см. в разделе Элемент <activated> (экземпляр службы). Дополнительные сведения об использовании файла конфигурации для настройки клиента для использования типов, активируемых клиентом, см. в разделе Элемент <activated> (экземпляр клиента).

См. также

Задачи

Как создать экземпляр типа, активируемого клиентом

Основные понятия

Активация удаленных объектов
Конфигурация удаленных приложений
Активация сервером
Аренда времени существования