2013-07-01 13 views
10

Hat jemand Erfolg (Produktionscode) mit dem Hosting eines eigenständigen asynchronen Web-API (asp.net Web API) basierten Dienstes auf Mono gehabt? Mit standalone meine ich das Hosting der API in einer Konsolen-App außerhalb von asp.net.Standalone Async-Web-API auf Mono

Ich bin auf der Suche nach einer einfachen Möglichkeit, eine REST-API zu erstellen, und ich würde wirklich wirklich meinen Stapel async (C# 5-Stil) von der oberen HTTP-Schicht auf die untere Datenzugriffsebene, jetzt C# 5 machen hat so eine gute Unterstützung dafür.

Normalerweise würde ich mit ServiceStack gehen und dies als Daemon unter Linux hosten, aber da ServiceStack die neuen C# 5 Async-Sachen in ihren Diensten nicht unterstützt (soweit ich weiß), überlege ich, gehostete async Web API auf Mono.

Ich weiß, dass in ServiceStack eine asynchrone Verzweigung auf dem Weg ist, aber es ist nicht bereit, und ich weiß, dass es einige asynconeway Dinge in ServiceStack gibt, aber ich glaube nicht, dass dies die neue aufgabenbasierte Async verwendet Zeug in C# 5.

Also meine Frage ist, ob es möglich und stabil genug ist, um einen REST-Service mit einer selbst gehosteten asynchronen Web-API auf Mono zu machen, oder wenn es besser ist, synchrone ServiceStack nur bei eigenständigen Hosting auf Mono zu verwenden?

Antwort

9

Bessere Verwendung . Web-API wird (noch) nicht gut von Mono unterstützt. Mit Nancy, würden Sie tun:

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

ok danke. Es scheint aber als id NancyFc async immer noch Beta ist. Ist Web Api auf Mono nutzlos? –

+0

Unterstützung für Web-API & MVC 4 in Mono 3.0 ist nicht vollständig, soweit ich das beurteilen kann. Sie können gelegentliche Ausnahmen bekommen. NancyFx async ist immer noch Beta, also ist keine Lösung für Mono im Moment perfekt. –

+2

Die Nancy Async-Unterstützung ist technisch Beta, aber sie ist an einigen Stellen in Produktion und der einzige Bug, den wir bisher hatten, ist das Auspacken von Aggregat-Ausnahmen, also ist es solide :) –