gpt4 book ai didi

c# - ServiceStack 4 C# 客户端异步调用挂起

转载 作者:行者123 更新时间:2023-11-30 16:43:15 24 4
gpt4 key购买 nike

我正在使用 ServiceStack 4 客户端访问 RESTful api 端点。我写了两个方法来返回对象列表。同步方法按预期返回数据。异步方法卡在线上:

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 Service Clients应该只用于调用 ServiceStack Services .您可以使用 HTTP Utils用于调用第 3 方(即非 ServiceStack)服务。

JsonServiceClient 使用 .NET 的 HttpWebRequest,它对单个域的并发 HTTP 请求数量有默认限制,您可以通过以下方式增加:

ServicePointManager.DefaultConnectionLimit = n;

或者,对于异步请求,您可以使用 JsonHttpClient,它建立在没有这些限制的 Microsoft 较新的 HttpClient 之上。

关于c# - ServiceStack 4 C# 客户端异步调用挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45295341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com