Облегченная библиотека HTTP-сервера в .NET

Я ищу небольшую и быструю библиотеку, реализующую HTTP-сервер в .NET.

Мои общие требования:

  • Поддерживает несколько одновременных подключений
  • Требуется только поддержка статического контента (без обработки на стороне сервера)
  • Только HTTP, HTTPS не требуется
  • Желательно иметь возможность обслуживать страницу из источника в памяти. Я хочу интегрировать его в другое приложение, чтобы сделать изменяемые данные доступными через браузер, но я не хочу сначала записывать их в файл на диске. Например, просто передайте ему строку C# для использования в качестве содержимого текущей страницы.
  • Желательно с открытым исходным кодом, чтобы я мог изменить его, если это необходимо.
  • Определенно должен быть бесплатным... это для личного проекта без бюджета, кроме моего собственного времени. Я также хочу иметь возможность выпустить конечный продукт, который будет свободно использовать эту библиотеку (даже если это означает соблюдение конкретной лицензии OSS для этой библиотеки.

Изменить: Чтобы уточнить еще немного, то, что мне нужно, может быть ДЕЙСТВИТЕЛЬНО простым. Мне нужно иметь возможность обслуживать по существу 2 документа, которые я хотел бы обслуживать непосредственно из памяти. И это все. Да, я мог бы написать свой собственный, но я хотел убедиться, что не делаю то, что уже доступно.


person Adam Haile    schedule 07.11.2008    source источник


Ответы (3)


Используйте Cassini.

Бесплатно, с открытым исходным кодом.

Потребуется тривиальный взлом, чтобы обслуживать по памяти.

person FlySwat    schedule 07.11.2008

Насколько сложный HTTP-сервер вам нужен? .NET 2.0 имеет класс HttpListener, который вы можете использовать на создайте собственную базовую библиотеку. Поскольку это для личного проекта, и вы готовы потратить время, это также даст хороший опыт обучения, поскольку вы узнаете, как работать с классом. Кроме того, согласно документации MSDN, у него есть асинхронный режим, который дает каждому запросу свой собственный поток.

Получить базовый HTTP-сервер с запущенным и работающим классом также не так уж сложно, вы сможете сделать это всего за пару сотен строк кода.

person rjzii    schedule 07.11.2008
comment
У класса HttpListener есть один недостаток — ему требуются права администратора, даже если номер порта не находится в защищенном диапазоне. - person Андрей Москвичёв; 14.11.2013

Проверьте Kayak.

Примечание: судя по всему, каяк больше не обслуживается, хотя он того заслуживает

person Avi Flax    schedule 19.10.2010