gpt4 book ai didi

Silverlight ClientHttp WebRequest 超时

转载 作者:行者123 更新时间:2023-12-03 17:59:10 24 4
gpt4 key购买 nike

我有一个 Silverlight 4 应用程序,它使用 ClientHttp 堆栈来制作一个 WebRequest,它提供一个二进制流。然后我从这个流中读取并做一些事情。但是,我有以下问题:服务器缓冲它发送下来的数据,因此发送过程就像发送-暂停-发送-暂停-发送...

有时服务器需要更长的暂停时间(大约 20 秒),此时连接似乎以某种方式中断。我在 Silverlight 中没有发现任何异常,实际上代码看起来像是从 Web 响应流读取完成(即没有更多数据)。但是,服务器实际上并未向下发送其所有数据(我可以从非 Silverlight 应用程序中进行测试,该应用程序将在暂停后获取更多数据)。我认为这可能是一些超时问题(根据我在 Silverlight 中阅读的内容无法明确设置),但奇怪的是我没有收到指示超时的异常。此外,暂停时间并不长,我希望 20 秒是一个合理的时间。

我还查看了 TCP 流量,在暂停之后,Silverlight 向服务器发送了一条 FIN 消息。所以它似乎有点超时并决定断开连接,但它实际上并没有将超时报告为异常或给我任何避免它的方法。

任何想法实际发生了什么以及我如何防止它?

谢谢!

更新:发现问题。有一个注册表项控制系统范围的 Web 请求超时行为,一些应用程序将其设置为 10 秒(例如 Install Anywhere)并“忘记”将其设置回来。关键是这样的:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ReceiveTimeout

我把它改回了一个更大的值,现在它工作正常了!嗯。

最佳答案

仅引用OP但提供答案:

UPDATE: Found the problem. There is a registry key that controls system-wide web request timeout behavior and some apps set it to 10 seconds (e.g. Install Anywhere) and "forget" to ever set it back. The key is this: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ReceiveTimeout

I changed it back to a greater value and now it works fine! Hth.

关于Silverlight ClientHttp WebRequest 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5475022/

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