我们遇到了很多与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
}
}
我发现了一些文章,包括' "Do Not Usre 'Using for WCF Clients'
虽然我没有创建WCF客户端,但我想知道是否发生了这种情况,因为它位于我的WCF服务的上下文中?
Exception是一个TimeoutException,因为请求花了一分多钟。我很清楚我可以更改超时,但我不是在寻找修复。我想知道在发生此异常时我是否正在连接。
答案 0 :(得分:0)
不,当对象被处置时,您的连接将被关闭。这里没有必要调用Close()。