2010-06-19 11 views
5

Estoy desarrollando un pequeño servidor que se supone que debe interactuar a través de http. Como quiero que se pueda utilizar con diferentes servidores maduros de http, he elegido FastCGI como interfaz común.¿Hay una biblioteca .NET FastCGI?

ahora no puedo encontrar una biblioteca .NET (gratis) que implementa la interfaz FCGI y hace todo el trabajo duro para mí. ¿Conoces uno?

Respuesta

2

No es que yo soy consciente de (También estoy buscando)

Una de las dificultades reside en el hecho de que FastCGI parece requerir que se pasa un identificador a un socket de escucha a un proceso hijo en lugar de el asa StdIn normal, algo que las clases .Net estándar (Proceso, Socket, etc ...) no permiten. Esto significa que la implementación de una biblioteca FastCGI en .Net requiere, en última instancia, la reimplementación de las clases Process y Socket mediante llamadas P/Invoke a las funciones nativas de Windows.

+0

gracias por su respuesta. Todavía estoy buscando una biblioteca así. No estaba al tanto de esas dificultades, entonces ¿tal vez sería más fácil crear un contenedor nativo alrededor de la biblioteca c y enviar las solicitudes a mi servidor administrado? – Milan

+0

@ entity64 Parece una buena idea: la alternativa sería volver a implementarlo en un lenguaje .Net. – Justin

+0

No entiendo tu segundo punto. Según tengo entendido, el servidor web que es cliente de un proceso fastcgi (servidor) reenvía las solicitudes. Ese proceso podría ser él mismo cliente para otro proceso de servidor. Según entiendo, no es necesario transferir la propiedad del socket que maneja la interfaz del servidor web/fastcgi. – schoetbi

2

he implementado recientemente una biblioteca tal en F #: SharpCGI

también completamente utilizable a partir de C#.

El problema se resuelve Kragen describe con cierto hackery Win32, explotando internos .NET. Sin embargo, no tiene que usar eso si configura su servidor web para usar un puerto designado para FastCGI.

+1

SharpCgi funciona en Mono, y ¿cómo describe el problema Kragen una configuración de SharpCgi en Mono? – ssn

1

Sí, hay muchas librerias como SharpCGI y FCGIDotNet, pero todos ellos implementan el lado del servidor del protocolo. Todavía necesito encontrar el código para hablar con un servidor FastCGI existente, es exactamente lo opuesto a lo que hacen todas estas bibliotecas (aunque el código para él es el 90% el mismo).

+0

echa un vistazo a nginx;) –

+0

@Quandary Eso no está escrito en C# – Muis

2

He venido aquí después de todo este tiempo para decir que he creado una biblioteca FastCGI escrito en C# que podría ser útil a los futuros lectores. No está muy documentado (FastCgi es un estándar bastante simple, por lo que no veo por qué lo sería), pero creo que está documentado lo suficiente como para ser utilizado por otros.
Actualmente, se expone una API tanto para servidores de aplicaciones como para los servidores web, aunque algunas características todavía podrían estar ausentes. Aún deberías echarle un vistazo.
no he tocado mucho últimamente pero funciona muy bien para mí (yo todavía lo uso).

Puede descargarlo a través NuGet o en mi GitHub. Se llama FastCgiNet.

2

Ver Mono.WebServer.FastCGI en
https://github.com/mono/xsp/tree/master/src

También hay un FastCGI CLIENTE aquí:
http://sourceforge.net/projects/fcgidotnet/

Y la especificación FastCGI está aquí:
http://www.fastcgi.com/devkit/doc/fcgi-spec.html

Puede encontrar una aplicación compatible OWIN aquí:
https://github.com/mzabani/Fos

Además, estas bibliotecas también son interesantes:


HyperFastCGI:
https://github.com/xplicit/HyperFastCgi

o
https://github.com/gigi81/sharpfastcgi

o #cgi
https://github.com/wmeyer/SharpCGI

Si necesita más ejemplos de FastCGI CLIEN Ts, se puede echar un vistazo a esto vaya biblioteca

https://github.com/tomasen/fcgi_client

Cuestiones relacionadas