Brian Nickel’s Online Journal

If you don’t C# you’ll B♭

Archive for July, 2007

FastCGI ASP.NET Server Status Report 9

Posted by Brian on July 27, 2007

This is a status report for the week of July 23 – July 27. The major highlight of the week is the addition of autotools to SVN and a patch to System.Net.Sockets.Socket.

THIS WEEK’S ACCOMPLISHMENTS

The first accomplishment is the incorporation of autotools. You can now install the server using the standard methods. It does not yet install assemblies into the GAC, but I plan on adding that by next week.

svn co http://mono-soc-2007.googlecode.com/svn/trunk/brian/FastCgi/ fastcgi-mono-server
cd fastcgi-mono-server
./autogen.sh && make && sudo make install

Once installed, you can use either of the following, for the 1.1 or 2.0 framework respectively:

fastcgi-mono-server /socket=tcp:1234
- or -
fastcgi-mono-server2 /socket=tcp:1234

Then use the methods discussed in previous reports to add support to the webserver. (Lighttpd, Cherokee)

The second accomplishment is a patch to the mono class library for System.Net.Sockets.Socket <http://mono-soc-2007.googlecode.com/svn/trunk/brian/patches/System.Net.Sockets.Socket-endpoint.diff>. It is a precursor to a constructor that will make a wrapper from the unmanaged to the managed socket.

PLANS FOR THE COMING WEEK

I’m going to continue working on what I’ve been working on but have not completed this week:

  1. I’m going to work with my mentor to develop a plan for a control panel and additional auto-configuration.
  2. I’m going to work with the mono developers on “the socket issue”.
  3. I’m going to contact developers of various FastCGI implementations on servers to overcome various issues I’ve encountered.

CHALLENGES I’M FACING

Nothing major at the moment.

RESOURCES USED THIS WEEK

  • MSDN and SharpDevelop (Windows) – Studying and testing out the Windows implementation of System.Net.Sockets.Socket.
  • http://www.koders.com – Searching for information on WinSock2
  • various source packages – How to do things with autotools.

Sincerely,
Brian Nickel

Posted in Programming, Summer of Code 2007 | 10 Comments »

FastCGI ASP.NET Server Status Report 6/7/8

Posted by Brian on July 21, 2007

This is a status report for the weeks of July 2 – July 20. I first apologize for the lack of reports lately. A combination of family vacation, exams, reinstalling Linux, and lack of Internet access, among other things, combined with the spot I was at in the goals got the best of me. However, I’ve come back more focused, with new ideas and plans, so the coming weeks should be more promising.

THIS WEEK’S ACCOMPLISHMENTS

This week I worked at re-prioritizing project goals, putting automatic configuration above a configuration application.

I implemented automatic application detection. Now you can simply call:

fastcgi-mono-server /socket=tcp:1234 /automappaths

That way you can just drop your ASPX files in the standard htdocs or public_html directories and an appropriate application is registered. This should overcome a lot of confusion in configuration and for automatic registration when creating new sub-domains or users.

automappaths

Beyond that, I got the server working perfectly on Lighttpd:

In /etc/lighttpd/conf.d/fastcgi.conf:

#######################################################################
##
##  FastCGI Module
## ---------------
##
## http://www.lighttpd.net/documentation/fastcgi.html
##

server.modules += ( "mod_fastcgi" )

fastcgi.server = (
        ".aspx"   => (( "host" => "127.0.0.1", "port" => 1234 )),
        ".asmx"   => (( "host" => "127.0.0.1", "port" => 1234 )),
        ".ashx"   => (( "host" => "127.0.0.1", "port" => 1234 )),
        ".asax"   => (( "host" => "127.0.0.1", "port" => 1234 )),
        ".ascx"   => (( "host" => "127.0.0.1", "port" => 1234 )),
        ".soap"   => (( "host" => "127.0.0.1", "port" => 1234 )),
        ".rem"    => (( "host" => "127.0.0.1", "port" => 1234 )),
        ".axd"    => (( "host" => "127.0.0.1", "port" => 1234 )),
        ".cs"     => (( "host" => "127.0.0.1", "port" => 1234 )),
        ".config" => (( "host" => "127.0.0.1", "port" => 1234 )),
        ".dll"    => (( "host" => "127.0.0.1", "port" => 1234 ))
)

In /etc/lighttpd/modules.conf:

include "conf.d/fastcgi.conf"

In /etc/lighttpd/lighttpd.conf:

index-file.names = (
  "index.xhtml", "index.html", "index.htm", "default.htm", "index.php", "default.aspx", "index.aspx"
)

lighttpd

PLANS FOR THE COMING WEEK

  1. I’m going to work with my mentor to develop a plan for a control panel and additional auto-configuration.
  2. I’m going to work with the mono developers on “the socket issue”.
  3. I’m going to contact developers of various FastCGI implementations on servers to overcome various issues I’ve encountered.
  4. I’m going to start reorganizing the source for autotools.
  5. I’m going to continue work on documentation.

CHALLENGES I’M FACING

I’ve had trouble getting enough time in due to family obligations and coursework. I’ve also had a lack of motivation due to a lack of clarity over how to address the control panel. Both of these problems should be resolved.

Sincerely,
Brian Nickel

Posted in Programming, Summer of Code 2007 | 2 Comments »