0

我们的 WCF 服务一直存在很多问题,它会发出大量的出站请求。我们有挂起的 IIS 请求,这些请求只会不断增加,直到服务器最终关闭。我们已经进行了堆栈转储,这使我们相信当我们在 using 语句(例如以下代码位)中调用 HttpWebResponse.GetResponse() 时会发生这种情况。

        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            using (StreamReader reader = new StreamReader(response.GetResponseStream()))
            {
                str = reader.ReadToEnd();  //Not Being Hot When Exception Thrown

                reader.Close(); //Not Being Hot When Exception Thrown
                response.Close();  //Not Being Hit When Exception Thrown
            }
        }

我遇到了几篇文章,包括“不要使用‘用于 WCF 客户端’

虽然我没有创建 WCF 客户端,但我想知道这是否正在发生,因为它在我的 WCF 服务的上下文中?

异常是 TimeoutException,因为请求花费了超过一分钟。我很清楚我可以更改超时,但我不是在寻找那个修复。我想知道发生此异常时我是否正在流血连接。

4

1 回答 1

0

不,当对象被释放时,您的连接将被关闭。此处无需调用 Close()。

于 2013-07-10T21:53:07.970 回答