1
这个问题让我难堪。在过去的12个月里,我们在生产服务器上发生了三次这样的事情,并在出现重大问题时发生。任何帮助,将不胜感激。System.Net.WebRequest - TCP连接重用/缓存?
我们有一个.NET Windows服务向第三方服务器发送HTTP请求。发生“某些事情”,并且接下来的2-3个请求会因服务器错误503而失败,随后的请求会收到超时异常。听起来像一个服务器问题吗?但是,如果我在浏览器中输入请求URL,它将返回响应。
该问题已通过重新启动.NET服务解决,现在让我认为这是一个客户端问题,但我无法想象如何。到服务器的底层TCP连接是否被重用或缓存?有没有一种方法可以强制.NET重新创建连接?
以下是网络请求代码。
public string GetResponseFromServer(string requestXML, string serverUrl, int Timeout)
{
System.Net.WebRequest req = System.Net.WebRequest.Create(serverUrl);
req.Method = "POST";
req.Timeout = Timeout;
byte[] requestBodyBytes = System.Text.Encoding.UTF8.GetBytes(requestXML);
req.ContentLength = requestBodyBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(requestBodyBytes, 0, requestBodyBytes.Length);
newStream.Close();
System.Net.WebResponse response = req.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
return reader.ReadToEnd();
}
谢谢克里斯我会试试看。 – 2010-10-19 22:47:07