Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: Why ISAPI



Permlink Replies: 11 - Last Post: Apr 21, 2015 6:13 PM Last Post By: Roland Kossow
Alexander Popov

Posts: 52
Registered: 7/22/05
Why ISAPI
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 16, 2015 2:14 AM
Hello!
I have always been deploying my applications as Windows services. Will I get any advantages in terms of speed and stability if I deploy them as ISAPI?
Robert Triest

Posts: 687
Registered: 3/24/05
Re: Why ISAPI
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 16, 2015 5:32 AM   in response to: Alexander Popov in response to: Alexander Popov
Alexander Popov wrote:
Hello!
I have always been deploying my applications as Windows services. Will I get any advantages in terms of speed and stability if I deploy them as ISAPI?

The ISAPI (dll) is only one time executed on the server. For every user asking the dll, the dll is reused. With CGI (exe) for every user a new
instance of your executable is executed. You can end up with many, many CGI execuatbles launced on your server during heavy user load.
Maybe reusing the DLL (that is already loaded) has a better performance than an execuatble that has to start every time.
Alexander Popov

Posts: 52
Registered: 7/22/05
Re: Why ISAPI
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 16, 2015 5:52 AM   in response to: Robert Triest in response to: Robert Triest
The ISAPI (dll) is only one time executed on the server. For every user asking the dll, the dll is reused. With CGI (exe) for every user a new
instance of your executable is executed. You can end up with many, many CGI execuatbles launced on your server during heavy user load.
Maybe reusing the DLL (that is already loaded) has a better performance than an execuatble that has to start every time.

Hi, Robert!

I'd like to clarify that I don't mean CGI, I'd like to discuss the difference between Intraweb application deployed as service or deployed as ISAPI dll.
Robert Triest

Posts: 687
Registered: 3/24/05
Re: Why ISAPI
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 16, 2015 6:32 AM   in response to: Alexander Popov in response to: Alexander Popov
I'd like to clarify that I don't mean CGI, I'd like to discuss the difference between Intraweb application deployed as service or deployed as ISAPI dll.
Sorry yes, I see Intraweb. I was too quick. IntraWeb threads appearing under the general Delphi Forum. (don't know why, and like DataSnap isn't....)
and I overlooked the Intraweb.

The ISAPI DLL is launced by your external webserver (IIS and still only once) and it might be so that using this external webserver causes more overhead
than a native Intraweb application with a build-in webserver. Your Intraweb application and the server (and database connection?) is packed in one
executable and my feeling is that it should be smoother to run. But it just a guess ;-)
Alexander Popov

Posts: 52
Registered: 7/22/05
Re: Why ISAPI
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 16, 2015 7:00 AM   in response to: Robert Triest in response to: Robert Triest
The ISAPI DLL is launced by your external webserver (IIS and still only once) and it might be so that using this external webserver causes more overhead
than a native Intraweb application with a build-in webserver. Your Intraweb application and the server (and database connection?) is packed in one
executable and my feeling is that it should be smoother to run. But it just a guess ;-)

It was my guess too :). But for some reason people use intraweb applications deployed under IIS. I wonder, why?
Eduardo A. Salg...

Posts: 4
Registered: 10/5/99
Re: Why ISAPI
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 16, 2015 7:57 AM   in response to: Alexander Popov in response to: Alexander Popov
Alexander Popov wrote:
The ISAPI DLL is launced by your external webserver (IIS and still only once) and it might be so that using this external webserver causes more overhead
than a native Intraweb application with a build-in webserver. Your Intraweb application and the server (and database connection?) is packed in one
executable and my feeling is that it should be smoother to run. But it just a guess ;-)

It was my guess too :). But for some reason people use intraweb applications deployed under IIS. I wonder, why?

Could it be that if the ISAPI DLL has to be updated or hangs, you must
reboot the entire server.

With the exe you can stop the service, replace the exe and restart the
service.

--
- Eduardo
In theory, there is no difference between theory
and practice. But, in practice, there is.
-- Jan L.A. van de Snepcheut

Eduardo A. Salgado
Dan Barclay

Posts: 889
Registered: 11/9/03
Re: Why ISAPI
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 16, 2015 9:22 AM   in response to: Eduardo A. Salg... in response to: Eduardo A. Salg...
Eduardo A. Salgado wrote:
Alexander Popov wrote:
It was my guess too :). But for some reason people use intraweb applications deployed under IIS. I wonder, why?

Could it be that if the ISAPI DLL has to be updated or hangs, you must
reboot the entire server.

I wasn't aware of that. I thought you could restart the IIS web service. I have only played with the standalone, but want to support IIS as well.

Thanks,
Dan
Todd Frankson

Posts: 39
Registered: 12/19/14
Re: Why ISAPI
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 16, 2015 12:31 PM   in response to: Eduardo A. Salg... in response to: Eduardo A. Salg...
Eduardo A. Salgado wrote:

Could it be that if the ISAPI DLL has to be updated or hangs, you must
reboot the entire server.

With the exe you can stop the service, replace the exe and restart the
service.

Just restart IIS to reset it, or recycle the application pool the ISAPI runs in. No need to bring down a server
Robert Triest

Posts: 687
Registered: 3/24/05
Re: Why ISAPI
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 16, 2015 11:53 PM   in response to: Alexander Popov in response to: Alexander Popov
It was my guess too :). But for some reason people use intraweb applications deployed under IIS. I wonder, why?

I think they use the ISAPI only as a part of their webserver and the IIS handles other things as well, like normal webpages.
The ISAPI and the other services of IIS can then use the same serverport (like the normal webport 80) The intraweb application
will capture this port.
Alexander Popov

Posts: 52
Registered: 7/22/05
Re: Why ISAPI
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 17, 2015 3:34 AM   in response to: Robert Triest in response to: Robert Triest
Ok, As I can see by far no other advantages unless you have already used IIS for your main site. I hoped that maybe IIS would have some built-in functionality to optimize the requests to your application or allow to scale it. But, as I got right, an application deployed as a service is more robust than one deployed as ISAPI because there is no additional overhead in this case.

Edited by: Alexander Popov on Apr 17, 2015 3:35 AM
Pedro Lopes

Posts: 97
Registered: 3/2/00
Re: Why ISAPI [Edit]
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 17, 2015 10:16 AM   in response to: Alexander Popov in response to: Alexander Popov

On 16/04/2015 13:25, Alexander Popov
wrote:
Hello!
I have always been deploying my applications as Windows services. Will I get any advantages in terms of speed and stability if I deploy them as ISAPI?

Hi Popov

I find ISAPI much more faster than SA.

Besides, it has recycling capabilities, ie, if the app is idle for a
given time, IIS releases it.

To not speak of Fail Protection.

Just my 2 cents.

Pedro


Roland Kossow

Posts: 77
Registered: 9/23/99
Re: Why ISAPI
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 21, 2015 6:13 PM   in response to: Alexander Popov in response to: Alexander Popov
Isapi is much faster.
Isapi is much more secure.
Isapi causes less hassle in hardened network environments because you use the same ports as every standard webserver.
Use isapi or the aspx deployment of intraWeb for production (I did never do asp deployment myself but I think it is an option).
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02