Есть ли библиотека .NET FastCGI? - PullRequest
5 голосов
/ 19 июня 2010

Я разрабатываю небольшой сервер, который должен взаимодействовать через http.Поскольку я хочу, чтобы его можно было использовать с различными зрелыми серверами http, я выбрал FastCGI в качестве общего интерфейса.

Теперь я не могу найти (бесплатную) библиотеку .NET, которая реализует интерфейс FCGI и выполняеттяжелая работа для меня.Вы знаете один?

Ответы [ 5 ]

3 голосов
/ 11 ноября 2015

См. Mono.WebServer.FastCGI наhttps://github.com/mono/xsp/tree/master/src

Здесь также есть FastCGI CLIENT :http://sourceforge.net/projects/fcgidotnet/

И спецификация FastCGI здесь:http://www.fastcgi.com/devkit/doc/fcgi-spec.html

Вы можете найти OWIN-совместимую реализацию здесь:https://github.com/mzabani/Fos

Кроме того, эти библиотеки также интересны:

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

илиhttps://github.com/gigi81/sharpfastcgi

или #cgihttps://github.com/wmeyer/SharpCGI

Если вам нужно больше примеров для клиентов FastCGI, вы можете взглянуть на эту библиотеку go

https://github.com/tomasen/fcgi_client

3 голосов
/ 26 июля 2010

Не то, чтобы я знал (я тоже ищу)

Одна из трудностей заключается в том, что FastCGI, похоже, требует, чтобы вы передавали дескриптор сокету слушателя в дочерний процесс на местеобычного дескриптора StdIn - то, чего не позволяют стандартные классы .Net (Process, Socket и т. д.).Это означает, что реализация библиотеки FastCGI в .Net в конечном итоге требует повторной реализации классов Process и Socket с использованием вызовов P / Invoke для собственных функций Windows.

2 голосов
/ 21 января 2014

Я пришел сюда спустя столько времени, чтобы сказать, что создал библиотеку FastCGI, написанную на C #, которая может быть полезна для будущих читателей. Он не очень хорошо документирован (FastCgi - довольно простой стандарт, поэтому я не понимаю, почему это так), но я думаю, что он достаточно хорошо документирован, чтобы его могли использовать другие.
В настоящее время он предоставляет API как для серверов приложений, так и для веб-серверов, хотя некоторые функции все еще могут отсутствовать. Вы все еще должны проверить это.
В последнее время я не особо к этому прикасался, но для меня это работает очень хорошо (я все еще использую это).

Вы можете скачать его через NuGet или на моем GitHub . Это называется FastCgiNet .

2 голосов
/ 29 июня 2011

Да, существует много библиотек, таких как SharpCGI и FCGIDotNet, но все они реализуют протокол на стороне сервера. Мне все еще нужно найти код для общения с существующим сервером FastCGI, это как раз наоборот, что делают все эти библиотеки (хотя код для него на 90% одинаков).

2 голосов
/ 12 апреля 2011

Я недавно реализовал такую ​​библиотеку в F #: SharpCGI

Также полностью используется из C #.

Проблема, описанная Крагеном, решается с помощью некоторого взлома Win32, использующего внутренние компоненты .NET. Однако вам не нужно использовать это, если вы настраиваете свой веб-сервер на использование назначенного порта для FastCGI.

...