使用HttpWebRequest时的定期超时

时间:2010-12-14 09:26:27

标签: memory-leaks httpwebrequest timeout system.net.webexception

我有一些代码可以发送简单的xml Web请求。它是从Windows服务调用的。有时服务开始抛出异常(System.Net.WebException:操作已经超时),并且重新启动服务可以解决问题。这是代码:

    public bool PerformXmlRequest(string xml)
    {
        var httpRequest = (HttpWebRequest)WebRequest.Create(_url);

        httpRequest.Method = "POST";

        httpRequest.ContentType = "text/xml";

        using (var xmlWriter = new StreamWriter(httpRequest.GetRequestStream(), Encoding.UTF8))
        {
            xmlWriter.WriteLine(xml);
        }

        using (var httpResponse = (HttpWebResponse)httpRequest.GetResponse())
        {
            return httpResponse.StatusDescription == "OK";
        }
    }

是否有任何明显错误可能导致此问题?

1 个答案:

答案 0 :(得分:1)

我发现调用代码没有任何问题。

是客户端代码生成的错误还是来自服务?

如果它是来自服务的,那就是需要修复的服务,无论你发送什么服务,服务都不应该超时,它应该在一个更有控制的主管中失败,给出一个更好的错误消息。