Hoewel de implementatie van Mono FastCGI altijd is verpakt met een ASP.NET-server, heb ik de code zo geschreven dat deze kan worden gebruikt met elke serverimplementatie. Hier is een eenvoudig voorbeeld dat zou moeten werken. De code van uw aanvraag gaat in de methode Verwerken
en u hebt toegang tot FastCGI-omgevingsvariabelen via ResponderRequest.GetParameter
.
using Mono.FastCgi;
public class MyResponder : IResponder {
RequestResponder req;
public MyResponder(RequestResponder req) {
req = request;
}
public int Process() {
req.SendOutput("Content-Type: text/plain\r\n\r\n");
req.SendOutput("Server name: ");
req.SendOutput(req.GetParameter("SERVER_NAME");
return 0;
}
public ResponderRequest Request {
get {return req;}
}
public static void Main() {
Socket socket = SocketFactory.CreatePipeSocket(IntPtr.Zero);
// = SocketFactory.CreateTcpSocket(address, port);
// = SocketFactory.CreateUnixSocket(path);
Server server = new Server(socket);
server.SetResponder(typeof (MyResponder));
server.Start(false);
}
}
Om dit voorbeeld te bouwen, kunt u alle CS-bestanden downloaden van https: //github.com/mono/xsp/tree/master/src/Mono.WebServer.FastCgi en sluit alle bestanden uit die niet de naamruimte Mono.FastCgi
gebruiken.