Brian Nickel worked on extending our hosting
server for ASP.NET applications (XSP) to support FastCGI.
Robert Jordan today integrated his Summer of Code project into
the main distribution for XSP.

Until today developers had two options to host ASP.NET
applications with Mono: mod_mono (using Apache) or using a
standalone, minimalistic HTTP 1.0 server (the xsp command).

XSP provides the Mono.WebServer.dll ASP.NET application
hosting library (controls application domains, starts up new
instances of HttpApplication, configures and most importantly
implements the communication endpoint for HttpWorkerRequest).
Mono.WebServer.dll is not very useful on its own as it does
not actually implement the HTTP protocol.

For Mono.WebServer.dll to actually be useful, it is
necessary to write an HTTP front end for it. Something that
speaks the protocol and passes on the request to the
application hosting interface.

Most setups today look like this:

You just have to imagine the "Internet" on the left side
(TODO: get a cloud picture, and copy-paste it).

Some courageous people use our test server (xsp) which
merely implements HTTP 1.0 and has no configuration options
(other than the port to listen to):

Courageous because really, there is not much other than
serving files and requests in that server and it is limited to
HTTP 1.0.

The FastCGI Mono Server was developed as part of the 2007
Google Summer of Code with the goal of increasing the
availablity of ASP.NET and simplifying
configuration. Requiring as little as zero command line
options and supporting a large number of servers, the FastCGI
Mono Server makes it simple to include ASP.NET on your server.

Documentation on how to configure the FastCGI support for
various servers is available here
(In particular lighttpd).

This code is available now from our SVN
Repository. This should be available on Mono 1.2.6.

Thanks to Brian for writing this nice code and Robert for
integrating this into trunk and Marek for his ongoing
maintenance of the ASP.NET stack.

Now, who does one have to bribe to get early access to the
ASP.NET MVC bits around here or get invited to the ASP.NET
SDRs ;-)