gpt4 book ai didi

.net - 我需要帮助设置 .NET HttpWebRequest 超时

转载 作者:行者123 更新时间:2023-12-01 12:01:58 25 4
gpt4 key购买 nike

我的目标是在最短的时间内从最多 6000 个 Urls 中得到答案。它运行良好(5200 个 LAN 地址需要 12 秒),直到开始出现一些延迟。

我的代码最多同时使用 20 个 HttpWebRequest.BeginGetResponse 和 ThreadPool.RegisterWaitForSingleObject 进行超时处理。

然而,一些(5,000 个中最多有 4 个)请求从未命中带有第二个参数 (timedOut) true 的 TimeoutCallback 函数,它们浪费了我宝贵的 5 分钟时间,直到它们命中 BeginGetResponseCallback 函数然后引发 WebException。异常显示类似“操作已达到时间限制”之类的内容,但由于异常消息是葡萄牙语(我的母语),我无法用谷歌搜索它。

我想知道我是否可以将这个时间限制减少到例如 20 秒。任何人都知道如何?我已经尝试过:

<system.web>
<httpRuntime executionTimeout="20"/>
</system.web>

但是当我将它作为控制台应用程序运行时,ASP.NET 配置不起作用。我也试过:

myHttpWebRequest.Timeout = 20*1000;

ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle, new WaitOrTimerCallback(TimeoutCallback), AsyncState, 20*1000, true);

没有成功。你能帮帮我吗?

更新我想说的是异步 HTTP 请求有 4 种可能的结果:

  1. 永不到达回调函数->超时回调函数
  2. 成功到达并回答
  3. 到达并引发异常
  4. 延迟整整 5 分钟,直到在回调函数中引发“时间限制”网络异常

第 4 种可能性是延迟我的申请,我不知道如何缩短延迟

更新是否有可能是方法 GetResponseStream 而不是 GetResponse 导致超时?

最佳答案

听起来您需要设置请求对象的 ReadWriteTimeout 属性。

http://blogs.msdn.com/buckh/archive/2005/02/01/365127.aspx

关于.net - 我需要帮助设置 .NET HttpWebRequest 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/387247/

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