簡體   English   中英

ServiceStack 4 C#客戶端異步調用掛起

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM