gpt4 book ai didi

c# - 执行 client.SendAsync 时出现 HttpRequestException

转载 作者:行者123 更新时间:2023-11-30 18:28:20 30 4
gpt4 key购买 nike

突然间,这段通常有效的代码开始抛出 HttpRequestException 错误。在日志中,我看到请求实际上是在抛出错误之前 1 分 35 秒发送的。会不会是超时问题?

代码如下:

private async Task<HttpResponseMessage> RunRequest(HttpRequestMessage request)
{
var client = new HttpClient();
var response = await client.SendAsync(request).ConfigureAwait(false);
return response;
}

这是调用者(可能有 10K 到 50K 项):

int counter = 0;
var tasks = items.Select(async i =>
{
if (await RunRequest(CreateRequest(i)))
counter++
}).ToList();

if (tasks.Any())
{
await Task.WhenAll(tasks);
}

这里是错误:

System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The request was aborted: The request was canceled.
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
--- End of inner exception stack trace ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MyClass.<RunRequest>d__c.MoveNext()
--- End of inner exception stack trace ---
at MyClass.<RunRequest>d__c.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MyClass.<RunRequest>d__0.MoveNext()

Task.WhenAll 是否有限制?

最佳答案

如果您的所有请求都针对同一个域,那么您需要将此添加到您的“Web.config”文件(默认仅为 2):

<configuration>
<system.net>
<connectionManagement>
<add address="*" maxconnection="100" />
</connectionManagement>
<system.net>
<configuration>

并且您已经在等待每个 RunRequest 依次连续地等待,因此实际上没有任何并行运行 - 并且您的 Task.WhenAll 应该抛出异常,因为您给它一个 HttpResponseMessage 列表而不是一个 Task 列表。

RunRequest 不返回 bool,那么您如何在 if 中使用它?

...这段代码有太多错误...

关于c# - 执行 client.SendAsync 时出现 HttpRequestException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25213414/

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