Поделиться через


Регистрация сервера DLL для суррогатной активации

Сервер DLL будет загружен в суррогатный процесс в следующих условиях:

Если существует LocalServer, LocalServer32 или LocalService, указывающий на существование EXE, сервер EXE или служба всегда будут запускаться в предпочтениях загрузки сервера DLL в суррогатный процесс.

Для суррогатной активации необходимо указать именованное значение DllSurrogate . Активация относится к вызовам любой из следующих функций активации:

Чтобы запустить экземпляр суррогата, предоставленного системой, задайте значение DllSurrogate пустой строкой или значением NULL. Чтобы указать запуск пользовательского суррогата, задайте для значения путь суррогата.

Если для одного и того же идентификатора AppID заданы как RemoteServerName, так и для dllSurrogate значение RemoteServerName игнорируется, а значение DllSurrogate вызывает активацию на локальном компьютере. Для удаленной суррогатной активации укажите RemoteServerName, но не DllSurrogate на клиенте и укажите DllSurrogate на сервере.

Сервер DLL, предназначенный для постоянного запуска в собственном суррогатном процессе, лучше всего настроен с appID равным CLSID. В разделе AppID просто укажите именованное значение DllSurrogate с пустым строковым значением.

Рекомендуется настроить сервер DLL, предназначенный для запуска в собственном суррогатном процессе и обслуживать несколько клиентов в сети со значением RunAs , указанным в разделе реестра AppID . Указывает ли runAs "Интерактивный пользователь" или определенное удостоверение пользователя зависит от пользовательского интерфейса, безопасности и других требований к серверу. Если задано значение RunAs, для обслуживания всех клиентов загружается только один экземпляр сервера, независимо от удостоверения клиента. С другой стороны, не настраивайте сервер с помощью RunAs , если намерение состоит в том, чтобы один экземпляр сервера DLL, работающий в суррогате, обслуживать каждое удаленное удостоверение клиента.

Требования к серверу DLL

Суррогатный общий доступ