Автономный асинхронный веб-интерфейс на Mono

Кто-нибудь имел успех (производственный код) с размещением автономного асинхронного веб-API (asp.net web API) на основе Mono? В автономном режиме я имею в виду размещение API в консольном приложении вне asp.net.

Я ищу простой способ создания REST API, и я действительно очень хотел бы сделать мой стек async (стиль С# 5) с верхнего уровня HTTP на нижний уровень доступа к данным, теперь, когда С# 5 имеет такая хорошая поддержка для него.

Обычно я бы пошел с ServiceStack и размещал это как демон в Linux, но поскольку ServiceStack не поддерживает новый асинхронный контент С# 5 в своих сервисах (насколько мне известно), я рассматриваю возможность использования самообслуживания асинхронный веб-API на Mono.

Я знаю, что в ServiceStack есть какая-то ветка async, но она не готова, и я знаю, что в ServiceStack есть некоторые asynconeway вещи, но я не думаю, что это использует новую задачу, основанную на async в С# 5.

Итак, мой вопрос заключается в том, можно ли и достаточно стабильно сделать службу REST с помощью самообслуживающего асинхронного веб-API на моно, или если лучше просто использовать синхронный ServiceStack при автономном хостинге на Mono?

Ответ 1

Лучше использовать async NancyFx. Веб-API не поддерживается в Mono (пока). С Нэнси вам понравится:

public Module()
{
    Get["/greet/{name}"] = async x => {
        await Task.Delay(5000);
        return string.Concat("Hello ", x.name);
    };
}

Ответ 2

Не совсем автономное приложение, но проверьте этот учебник на Запуск служб ASP.NET Web API в Linux и OS X В нем показано, как запустить ASP.net Web API из ОС на базе UNIX.