Встроенный веб-сервер С#?
В Java я смог внедрить * jetty сервер в своих приложениях, но есть ли эквивалентная встроенная * серверная технология для .Net?
Если возможно, предпочтительнее использовать Open source (FLOSS).
* встроенным я имею в виду легкое приложение веб-сервера, которое может быть упаковано вместе с моим приложением и запускаться на локальной локальной машине пользователя для локального предоставления веб-службы.
Ответы
Ответ 1
Ближайший эквивалент Jetty, который я нашел до сих пор, Nancy, описывается как:
- легкая, низко-церемониальная структура для создания HTTP-сервисов на .Net и Mono.
Nancy предназначена для обработки запросов DELETE, GET, HEAD, OPTIONS, POST, PUT и PATCH.
Нэнси была разработана, чтобы не иметь никаких зависимостей от существующих фреймворков. Построенный с профилем клиента .NET framework, Nancy можно использовать практически везде, где вы хотите, поскольку он полностью автономно с собственными объектами запроса и ответа.
Одной из основных концепций в Nancy является хост. Хост выступает в качестве адаптера для среды размещения и Nancy, что позволяет Nancy работать с существующими технологиями, такими как ASP.NET, WCF и OWIN, или интегрироваться в любое заданное приложение.
Еще более легкий вариант Kayak ( Обновление: проект выглядит мертвым с 2014-01- 18), который его документация описывает как:
простой веб-сервер. Он прослушивает подключения, создает представление запросов в памяти и позволяет легко генерировать ответы. Он может использоваться в любой программе С#. Ваш код загружает Kayak в его пространство процесса - не наоборот!
и Нэнси и Каяк лицензируются MIT.
Ответ 2
Вот еще одна альтернатива, которую я написал в прошлом году и хорошо служил мне.
EmbedIO: https://github.com/unosquare/embedio
Я использую его в основном для создания сервисов RESTful на малиновой Pi (soft-float).
Изменить: Обновлен код для Mono 3.10, поддержка WebSockets и асинхронная обработка запросов.
Ответ 3
Обновление за 2016 год:
Новый ребенок на блоке Kestrel.
Kestrel - это веб-сервер с открытым исходным кодом, который является частью инициативы ASP NET Core от Microsoft. Это веб-сервер, основанный на событиях, построенный на libuv (это в основном node.js
- js
+ .net
). Это означает, что он должен быть легко переносимым между различными операционными системами. К сожалению, это означает, что для этого требуется внешняя нативная зависимость.
https://github.com/aspnet/KestrelHttpServer
Более старый проект, который делает это В настоящее время
https://github.com/Bobris/Nowin/tree/master/Nowin
Это реализация Owin, построенная полностью внутри .net. К сожалению, он устарел в пользу "Кестрел".
Ответ 4
Тот, который используется с Visual Studio, называется cassini. Существует хорошая производная, называемая UltiCassini.
Ответ 5
Решение от самой Microsoft называется Katana,
https://katanaproject.codeplex.com/
Обратите внимание, что он полностью открыт в соответствии с лицензией Apache.