Xepient Solutions
about us services solutions
English Español
Xepient Solutions  
 
Solutions
Open-Point
ViewState-Server
KeepAlive-Server
DNN-Integration

 

KeepAlive-Server

Have you ever accessed your web site after some time of inactivity, only to discover how slow it is in servig up the first page?

Open-KeepAlive helps solving the first-hit problem.

This HttpModule will make an automatic request to a page you designate, every time the .NET runtime releases its resources. In this way, the next real user that requests a page will not suffer any delay due to the reloading of needed resources. The Site is kept alive.

It requires no code changes nor recompilation. Set-up is fast and easy.

 

What It Does

It keeps the site "alive", when:

  • The .NET process recycles its resources automatically
  • The web.config file is changed
  • A new .dll is introduced or a change of an existing .dll is made in the /bin directory

It does not keep the site "alive" when:

  • IIS worker processes are shut down, either gracefully or not
Note:

According to Microsoft: "The [IIS] worker process is subject to a feature named process recycling. Process recycling consists in the aspnet_isapi ability of automatically starting a new process when the existing one is consuming too much memory, responds too slowly, or just hangs. When this happens, new requests are serviced by the new instance, which becomes the new active process. However, all the requests assigned to the old process remain pending. When the old process has finished with pending requests and enters idle state, it is terminated. If the worker process crashes, or in anyway stops processing the requests, all pending requests are reassigned to a new process."

So, under some, but not all circumstances, when your aspnet_wp.exe or w3wp.exe is recycled or killed, the aspnet_isapi automatocally starts a new process, and that should explain why on occasion Application_End is not fired. As a consequence of this behavior, sometimes the first-hit slowness will remain. The frequency of such occurrances depend on your Internet Host settings and memory capacity.


How It Does It
  • When the first request is made, a pool of HttpApplication instances is created and the Application_Start event is raised.
  • The HttpApplication instances process the first and subsequent requests.
  • Periodically, the HttpApplication pool instances are disposed of by the .NET runtime, and/or, the .NET runtime releases its application resources, causing the disposal of the HttpApplication pool
  • In either case, when the last HttpApplication instance is disposed of, the Application_End event is invoked
  • Just before the Application_End event is called (technically, this will happen every time an HttpApplication instance is disposed of), Open-KeepAlive will make a request to a .aspx page designated in the web.config file, thus reinitiating the HttpApplication pool
  • As a result, the initial delay that is the natural consequence of a page request after recycling, will not occur. Open-KeepAlive will have already made that request automatically

There are a number of factors that cause the Application_End event:

  • Machine.Config settings, may dictate that the HttpApplication process be recycled at regular
    intervals or when the appropriate memory conditions are present (see machine.config's processModel tag).
  • web.config changes.
  • .dll changes

Setup

 see setup example

Setup is very simple and may only require a minute.

  • Copy the KeepAlive-Server .dll in your application's /bin directory
  • Give r/w access to the ASPNET (win2k) or Network Services (win2003) to the folder where Log files will be stored
  • Make a few entries in your web.config as shown in the example link


License

 see license agreement

Licenses are per Domain. Simply put, you buy KeepAlive-Server, and you can use it on any page that is invoked with the same base url.

Please see the full License Agreement in the link above.


Buy

 buy KeepAlive-Server

Price: 5.00€ (EUR)
Upon confirmation of your payment (it's usually immediate), you will be able to download and use KeepAlive-Server according to the license agreement above.

We use PayPal for transaction processing. You do not need to have a PayPal account in order to purchase this product. PayPal allows you to use your Credit Card like any other credit card processing provider.

 
 
Terms | Privacy | © 2004 Xepient Solutions