Creating ASPs for In-process or Out-of-process Servers
You can use Server.CreateObject in an ASP page to launch either an in-process or out-of-process server, depending on your requirements. However, launching in-process servers is more common.
Unlike most in-process servers, an Active Server Object in an in-process server does not run in the client's process space. Instead, it runs in the IIS process space. This means that the client does not need to download your application (as, for example, it does when you use ActiveX objects). In-process component DLLs are faster and more secure than out-of-process servers, so they are better suited for server-side use.
Because out-of-process servers are less secure, it is common for IIS to be configured to not allow out-of-process executables. In this case, creating an out-of-process server for your Active Server Object would result in an error similar to the following:
Server object error 'ASP 0196' Cannot launch out of process component /path/outofprocess_exe.asp, line 11
Also, out-of-process components often create individual server processes for each object instance, so they are slower than CGI applications. They do not scale as well as component DLLs.
If performance and scalability are priorities for your site, in-process servers are highly recommended. However, Intranet sites that receive moderate to low traffic may use an out-of-process component without adversely affecting the site's overall performance.