Terminate a ISAPI (dll)

How do I Terminate a ISAPI (dll) when it is on the web?
delproAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

 
CesarioCommented:
Dear delpro,

In order to release the lock on a DLL, PWS must be manually stopped using the command prompt. By default, Pws.exe resides in the folder C:\Windows\System\Inetsrv.

To stop PWS, type the following command:

windows\system\inetsrv\pws.exe /stop

You can then restart PWS manually restarted from the Command Prompt by using the following command:

windows\system\inetsrv\pws.exe /start

Once PWS is stopped, this will release the ISAPI DLL. Recompile the DLL, if necessary. Once PWS restarts, it will again lock the DLL when it gets instantiated by your browser.

For IIS

At the run line, type: net stop iisadmin /y and then press Enter. This will stop all services while running the make on the DLL.

After recompiling your DLL, type: net start w3svc from the run line. Your services will be up again.

Best Regards

Cesario
0
 
AvonWyssCommented:
Note that with IIS you can also choose to disable ISAPI caching, which will make the webserver unload the DLL after every request. This is great for development and testing.
0
 
delproAuthor Commented:
Is there a way to do it in the program
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
AvonWyssCommented:
There is no API for this, no. Would not really make sense anyways since ISAPI works with DLLs (librarys!) and only makes calls to the DLL when necessary; besides from this, the DLL does not "run" (unlike a normal application, or a CGI application).

The only dirty trick you could try is to somehow stop or kill the web server from within one of the entry-points of your DLL, but that's not a really good idea. Therefore, use one of the other suggested methods. For you, disabling the ISAPI DLL cache might be exactly what you want.
0
 
RayNorrishCommented:
Do you want to kill the isapi for the purposes of replacing/updating it?

If so, check out William Egge`s ISAPI Loader, which allows replacement of dll, even while it is in use!

http://www.eggcentric.com/

If it is not what you need, a polite email may persuade him to part with the code you need to unload your DLL programatically.
0

Experts Exchange Solution brought to you by ConnectWise

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
 
delproAuthor Commented:
Wait for a long time for this.
Thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.