Подтвердить что ты не робот

Встроенный веб-сервер С#?

В Java я смог внедрить * jetty сервер в своих приложениях, но есть ли эквивалентная встроенная * серверная технология для .Net?

Если возможно, предпочтительнее использовать Open source (FLOSS).

* встроенным я имею в виду легкое приложение веб-сервера, которое может быть упаковано вместе с моим приложением и запускаться на локальной локальной машине пользователя для локального предоставления веб-службы.

4b9b3361

Ответ 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.