我知道这是一个模糊的问题,特别是因为我没有提供任何代码,但我正在开发.Net 2.0应用程序,我们有一个WebRequest,它将数据发布到内部构建的API。
奇怪的事情发生在我们的第3个(并且总是第3个)后续请求中,该请求在请求的GetRequestStream()方法中失败。它第一次和第二次被叫,一切都很好。在第三次,它挂了一点,最终超时。
内部的其他应用程序正在调用API,因此我们知道它不是服务器端或网络问题。我们尝试过几台机器 - 所有机器都有同样的问题。有没有人曾经遇到过这个问题,或者是否有人对如何调试有任何不满(因为响应对象没有任何东西,或者至少没有任何用处)。
答案 0 :(得分:18)
如果您没有处理WebResponse,通常会发生这种情况。从客户端到同一台计算机的连接数有一个限制,默认情况下是两个。如果关闭WebResponse,则可以重用(或关闭)连接。 using语句是你的朋友:
WebRequest request = [...];
// Do stuff with the request stream here (and dispose it)
using (WebResponse response = request.GetResponse())
{
// Stuff with the response
}
答案 1 :(得分:1)
我今晚学到了两件事。 1,妥善处理您的WebRequests; 2,更加注意堆叠溢出的答案!