As I mentioned in my last post, aspNETserve 1.3 has just been released. And with it comes some exciting changes. Here is an outline of some of the most notable changes:
aspNETserve’s goal is to target version 1.1 of the HTTP protocol, and prior to version 1.3 of aspNETserve it had an obvious shortcoming in that goal. It did not even attempt to keep “Keep-Alive” (aka, persistent) connections around. The server naively closed the connection after each request.
The new aspNETserve.Server object in version 1.3 has full support for persistent connections, and with it introduces a couple of new properties:
MaxConnections
This property represents the maximum number of simultaneous connections allowed. Once the maximum amount has been reached additional requests will be declined.
KeepAliveRequestTimeout
A period of time (in milliseconds) that aspNETserve will wait for subsequent communications on a previously established connection.
A Windows service called aspNETserve.Ice (pun intended) allows aspNETserve to process requests in the background. Additionally, this allows request processing without a user having to first login and launch the SimpleServer UI.
aspNETserve.Ice reads it configuration from an XML file whose schema is define on the wiki page ConfigSchemaOverview.
Here is a simple example of what the XML file looks like:
<?xml version="1.0" encoding="utf-8"?>
<server xmlns="http://aspnetserve.googlecode.com/svn/tags/Release%201.3/aspNETserve/Configuration/Xml/aspNETserve.config.xsd">
<application physicalPath="c:\temp">
<domain name="www.example.com" virtualPath="/" />
<endpoint ip="127.0.0.1" port="80" />
<endpoint ip="127.0.0.1" port="443" secure="true" />
</application>
</server>
Perhaps the most exciting new feature is the ability to distributed packaged web application. Essentially this allows you to ZIP up your entire web site and distribute one single file, instead of dozens (or even hundreds). Web Application Packages (WAPs), as they are called, are described in detail on their wiki page.
Currently on the SimpleServer supports WAPs, so this means that aspNETserve.Ice is left out of this feature. Fortunately, for those consuming the aspNETserve API, nothing prevents you from incorporating this feature into your own application. The best place to start learning about the semantics of WAPs is in the SimpleServer UI itself.
With any luck the next milestone for aspNETserve will be version 1.3.1, currently scheduled to be released sometime before October 31st, 2008.