HOWTO: Configure a DLL Surrogate for Use with ASP

ID: Q194023


The information in this article applies to:


SUMMARY

This article explains how to configure the registry to use in-process components outside the main process either on the same machine or on a remote server.

IMPORTANT: This article contains information about editing the registry. Before you edit the registry, make sure you understand how to restore it if a problem occurs. For information about how to do this, view the "Restoring the Registry" Help topic in Regedit.exe or the "Restoring a Registry Key" Help topic in Regedt32.exe.


MORE INFORMATION

DCOM provides a default DLL surrogate (Dllhost.exe) that can act as a host for your in-process components. The file Dllhost.exe is an executable component that you can run remotely and instruct to load any in-process component, providing the component with a surrogate parent process and security context.

Running In-Process Components Locally

To activate an in-process component in the context of a DLL surrogate, two settings must be configured in the registry. These settings can be made in the component's self registration code, or by using the following example surrogate.reg file:

   REGEDIT4

   [HKEY_CLASSES_ROOT\CLSID\{10000002-0000-0000-0000-000000000001}]
   "AppID"="{10000002-0000-0000-0000-000000000001}"

   [HKEY_CLASSES_ROOT\AppID\{10000002-0000-0000-0000-000000000001}]
   @="Surrogate DLL Sample"
   "DllSurrogate"="" 
Since no surrogate name is provided in this case, the system-supplied surrogate, Dllhost.exe, will be used by default.

Running In-Process Components Remotely

To configure a surrogate process to run remotely, all the standard registry entries configured via the component's self registration routine need to be present on the client machine, plus the following entries:

   REGEDIT4

   [HKEY_CLASSES_ROOT\CLSID\{10000002-0000-0000-0000-000000000001}]
   "AppID"="{10000002-0000-0000-0000-000000000001}"

   [HKEY_CLASSES_ROOT\AppID\{10000002-0000-0000-0000-000000000001}]
   @="Surrogate DLL Sample"
   "RemoteServerName"="Remote_Computer_Name" 
These entries specify whenever a client comes looking for the component, the component should actually be run on another machine specified by the RemoteServerName value.

Additional query words:


Keywords          : kbASP kbCOMt kbDCOM kbWebServer kbGrpASP 
Version           : WINDOWS:6.0; winnt:
Platform          : WINDOWS winnt 
Issue type        : kbhowto 

Last Reviewed: May 27, 1999