DLL: How do I avoid 'Permission Denied' when re-compiling?
Use this batch file to release IIS' lock on your DLL:
The disclaimer of course, if you're worried about stopping your web site temporarily: don't develop DLLs on production machines, and if you need to deploy a new version, use a different ProgID.
You may also find the need to use KILL.EXE, if iisadmin refuses to be shut down. KILL.EXE is found in the Windows Server 2003 Resource Kit. As long as the .EXE is in your system's path, you can modify the above script as follows:
(You may also need to start other required services such as FTP and/or SMTP.)
In Windows 2000 and above, you can use a much faster process by issuing the following command (again, at a command prompt or in a batch file):
You can also issue stop and start commands independently:
If your object is hosted in MTS (or an application running in its own memory space), you should be able to just unload that application / package. Similarly, for objects hosted in COM+, shutting down the application from Component Services should unlock any holds IIS has on your DLL.
If you are developing your ASP files using Visual InterDev, then IntelliSense may be doing you a disservice. Since this feature actually hooks into your custom COM objects (once you've created them using their ProgID in a createobject() statement), this places a lock on the DLL similar to the one IIS places on it. So if you are editing an ASP file which calls the DLL in question, you can recompile without rebooting by simply closing the ASP file.
Related ArticlesCan I code ISAPI filters / extensions with Visual Basic?
How do I detect browsers without components?
How do I determine if a COM object is installed?
How do I determine if a VBScript-based object exists?
How do I generate PDF files from ASP?
How do I generate RTF documents from ASP?
How do I handle MD5 from ASP?
How do I pass server-side values to a client-side ActiveX control?
Should I close my objects and/or set them to nothing?
Should I store objects in session/application scope?
Should I use CreateObject or Server.CreateObject?
When does ASP release COM objects?
Where can I get a shopping cart for my web site?
Where can I get an updated version of browscap.ini?
Why do I get 'Server.CreateObject Access Error'?
Why do I get 8000401A errors?
Why do I get 80040111 errors?
Why do I get 80040112 / 8007045A errors?
Why do I get 800401F3 / 800A01AD errors?
Why do I get 80040460 errors?
Why do I get 80040514 errors?
Why do I get 8007000E errors?
Why do I get 8007007E / 8007007F errors?
Why do I get 80072EE2 errors?
Why do I get 80072EE5 errors?
Why do I get 800A0030 errors?
Why do I get 800A005B errors?
Why do I get 800A9C68 errors?
Why do I get 800C0007 errors?
Why does Browscap give me 'unknown' or tell me IE is Netscape?