是否有人在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?
答案 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。