[英]ServiceStack 4 C# client async call hangs
我正在使用ServiceStack 4客戶端來訪問RESTful api端點。 我寫了兩個方法來返回一個對象列表。 synchronize方法按預期返回數據。 異步方法掛起就行了:
var response = await client.GetAsync<List<Debtor>>("api/Debtor");
這就是我的方法的定義方式:
public async Task<List<Debtor>> GetDebtorsAsync()
{
var debtors = new List<Debtor>();
try
{
var client = new JsonServiceClient(GlobalSingleton.ServerURI);
var response = await client.GetAsync<List<Debtor>>("api/Debtor");
debtors = response;
}
catch (Exception ex)
{
throw;
}
return debtors;
}
List<Debtor> IDebtorDal.GetDebtors()
{
var debtors = new List<Debtor>();
try
{
var client = new JsonServiceClient(GlobalSingleton.ServerURI);
var response = client.Get<List<Debtor>>("api/Debtor");
var r = response.GetResponseStatus();
debtors = response;
}
catch (Exception ex)
{
var x = ex.Message;
throw;
}
return debtors;
}
ServiceStack服務客戶端應僅用於調用ServiceStack服務 。 您可以使用HTTP Utils來呼叫第三方(即非ServiceStack)服務。
JsonServiceClient
使用.NET的HttpWebRequest
,它對單個域的並發HTTP請求數有默認限制,您可以通過以下方式增加:
ServicePointManager.DefaultConnectionLimit = n;
或者對於異步請求,您可以使用JsonHttpClient
,它建立在沒有這些限制的Microsoft較新的HttpClient
上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.