2013-07-01 73 views
10

有人在Mono上託管獨立的異步Web API(基於asp.net web API)服務時是否成功(生產代碼)?獨立的我的意思是在asp.net之外的控制檯應用程序中託管API。Mono上的獨立異步Web 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?

回答

9

更好地使用。 Mono(尚未)很好地支持Web API。與南希,你會做這樣的:

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

好的謝謝。看起來雖然編號NancyFc異步仍然是測試版。 Web Api在單聲道上無用嗎? –

+0

單聲道3.0中對Web API和MVC 4的支持並不完整,據我所知。你可能偶爾會有例外。 NancyFx async仍然是測試版,所以目前還沒有解決方案對於Mono來說是完美的。 –

+2

南希異步支持在技術上是測試版,但它在很多地方都在生產中,而我們迄今爲止唯一的錯誤是解開聚合異常,因此它是穩定的:) –