HOWTO: Lifetime of a COM Component Under IIS, ASP, and RDS
ID: Q166279
|
The information in this article applies to:
-
Microsoft Internet Information Server versions 3.0, 4.0
-
Active Server Pages
SUMMARY
When you create your own ActiveX Server components running under Internet
Information Server (Inetinfo.exe) for Active Server Pages (ASP) or Remote
Data Service (RDS), you may get the following error message when you try to
recompile or overwrite your DLL:
Permission Denied.
What you are encountering is a caching feature of Internet Information
Server (IIS) that improves performance by keeping the DLL in memory for
subsequent calls. IIS loads the DLLs, such as your ActiveX DLL, and holds
onto them; even long after you have navigated to another page. Though your
ActiveX DLL instance is released after the method returns, the DLL with the
class factory for the object is still loaded in memory, making it
impossible to overwrite or recompile.
With version 1.5, RDS has been renamed and merged with ActiveX Data
Objects (ADO) to provide data remoting within the same programming model
as ADO. Formerly, Remote Data Service was known as the Advanced Data
Connector (ADC). To clarify the relationship of ADC to ADO, ADC
is now known as the Remote Data Service (RDS), a feature of ADO.
MORE INFORMATION
Internet Information Server version 3.0
The best way to flush this DLL cache is by stopping your WWW service
by going into the Internet Service Manager, right-click
the WWW service, and select Stop. This can also be done by typing
the following command at the Windows NT Command Prompt:
Net Stop W3SVC
Then you can recompile or overwrite your DLL and restart your service by
right-clicking the WWW service, and selecting Start, or by typing
the following command at the NT Command Prompt:
Net Start W3SVC
To completely unload the Inetinfo.exe file, you need to stop MSFTPSVC and GOPHERSVC, but you do not have to do this if you just want to unload your ActiveX DLL component.
If you want to make restarting the WWW service considerably faster on a
development IIS server, create the following value in the registry, of type
REG_DWORD, and set it to zero.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\W3SVC
\Parameters
\EnableSvcLoc
Do the same for MSFTPSVC and GOPHERSVC if you are running them.
NOTE: On a production server the service locator should be enabled by
setting the value to one.
Internet Information Server version 4.0
To release the DLL from Internet Information Server version 4.0's cache you
must create and run the following batch file:
== bound.bat
net stop iisadmin /y
mtxstop
net start w3svc
REFERENCES
Web site for Remote Data Service:
http://www.microsoft.com/data/ado/rds
Web site for Internet Information Server:
http://www.microsoft.com/iis
Remote Data Service newsgroup:
microsoft.public.data.ado.rds
Internet Information Server newsgroup:
microsoft.public.inetserver.iis
Active Server Pages newsgroup:
microsoft.public.inetserver.iis.activeserverpages
(c) Microsoft Corporation 1997, All Rights Reserved. Contributions by Jon
Fowler, Microsoft Corporation
Additional query words:
kbdse
Keywords : iisMisc
Version : winnt:3.0,4.0
Platform : winnt
Issue type : kbhowto
Last Reviewed: January 29, 1999