ServiceStackのサーバーメソッドでasync/awaitを利用することは可能ですか?グーグルはServiceStackのフォークを表示しますが、これはうまくいくようですが、数か月間更新されておらず、そのコードが現在の公式バージョン(v3.9.32)にマージされているかどうかについての情報はありません。
async / awaitパターンを使用して単純なサービスを構築しましたが、正しく動作しませんが、これは単なる構成の問題ではないかと思います。コードは次のとおりです。
public class PodcastService : Service
{
public async Task<object> Get(Podcast request)
{
var client = new WebClient();
var data = await client.DownloadStringTaskAsync("http://www.google.fi");
return new PodcastResponse() { Date = DateTime.Now };
}
}
そして、メソッドが返すJSONは次のとおりです。
{"Result":{"__type":"WebApplication2.PodcastResponse, WebApplication2","Date":"2012-12-10T17:18:32.1653985+02:00"},"Id":1,"Status":"RanToCompletion","IsCanceled":false,"IsCompleted":true,"CreationOptions":0,"IsFaulted":false}
比較のために、非同期/待機なしの同じメソッドを次に示します。
public class PodcastService : Service
{
public object Get(Podcast request)
{
return new PodcastResponse() { Date = DateTime.Now };
}
}
結果は次のとおりです。
{"Date":"2012-12-10T17:20:23.0245677+02:00"}
何か案は?フォークはまだ道のりですか、それともasync / awaitはすでにServiceStackに実装されていますが、いくつかの構成が必要ですか?