Mono上的独立异步Web API

时间:2013-07-01 08:02:48

标签: mono servicestack async-await asp.net-web-api

是否有人在Mono上托管基于独立异步Web API(asp.net web API)的服务取得了成功(生产代码)?独立我的意思是在asp.net之外的控制台应用程序中托管API。

我正在寻找一种创建REST API的简单方法,我真的很想从顶层HTTP层到底层数据访问层使我的堆栈异步(C#5样式),现在C#5已经如此好的支持。

通常我会使用ServiceStack并将其作为Linux上的守护进程托管,但由于ServiceStack不支持其服务中的新C#5异步内容(据我所知),我正在考虑使用自托管Mono上的异步Web API。

我知道在ServiceStack的路上有一些异步分支,但还没准备好,我知道ServiceStack中有一些asynconeway的东西,但我不认为这是使用基于异步的新任务的东西在C#5中。

所以我的问题是,在单声道上使用自托管异步Web API制作REST服务是否可行且稳定,或者在Mono上进行独立主机时是否更好地使用同步ServiceStack?

2 个答案:

答案 0 :(得分:9)

更好地使用async NancyFx。 Mono(尚未)很好地支持Web API。和Nancy一样,你会这样做:

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

答案 1 :(得分:4)

不完全是独立的应用程序,但在Running ASP.NET Web API services under Linux and OS X上查看本教程它展示了如何从基于UNIX的操作系统运行ASP.net Web API。