C# HttpClient PostAsync导致System.ArgumentOutOfRangeException

C# HttpClient PostAsync导致System.ArgumentOutOfRangeException,c#,xamarin,dotnet-httpclient,C#,Xamarin,Dotnet Httpclient,我正在从事一个与web服务对话的Xamarin跨平台项目。我的服务调用的一般形式遵循以下模式: var clientQuery = new MyClientsQuery(param1, param2); var json = JsonConvert.SerializeObject(clientQuery); var content = new StringContent(json, Encoding.UTF8, "application/json"); HttpClient

我正在从事一个与web服务对话的Xamarin跨平台项目。我的服务调用的一般形式遵循以下模式:

var clientQuery = new MyClientsQuery(param1, param2);
var json = JsonConvert.SerializeObject(clientQuery);
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpClient _httpClient = new HttpClient();
response = await _httpClient.PostAsync(ServiceURL, content);
if (response.IsSuccessStatusCode)
{
    json = await response.Content.ReadAsStringAsync();
}
这通常可以正常工作,但在应用程序执行过程中进行几次调用后,PostAsync会生成异常:

System.ArgumentOutOfRangeException:索引超出范围。必须为非负数且小于集合的大小

参数名称:索引

我怀疑我遇到了某种连接限制,但我在System.Net.Http中找不到任何文档,说明我应该何时处理对象或任何其他线索


为什么会发生这种情况?

我认为您的连接限制是正确的。我解决这个问题的方法是结束以前的客户端连接。一旦我这么做了,我就不再犯这个错误了


对于出现此错误的其他用户,请查看您是否有许多其他已创建的http\U客户端,如果可以,请结束连接。

此异常可能来自您正在调用的Web服务。您确定提供的参数有效吗?是的,参数有效。据我所知,PostAsync不会抛出ArumingOutofRangeException。您可能看到正在调用的web服务返回的内部异常。您可以发布该异常的完整堆栈跟踪吗?完整的堆栈跟踪实际上并不完全完整。这就是在UIKit.UIKit.UIApplication.Main at/Users/builder/data/lanes/3969/7beaef43/source/xamarin macios/src/UIKit/UIApplication.cs:79,4 C#0x3B in UIKit.UIApplication.Main at/Users/builder/data/lanes/3969/7beaef43/source/xamarin macios/src/UIKit/UIApplication.cs:63,4 C#>0x8 inCSOSA.iOS.Application.Main位于C:\Code\CsoApp\CSOSA\CSOSA.iOS\Main.cs:17,13 C#