【发布时间】:2013-07-10 18:25:24
【问题描述】:
我们的 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 服务的上下文中?
异常是 TimeoutException,因为请求花费的时间超过一分钟。我很清楚我可以更改超时,但我不是在寻找那个修复。我想知道当这个异常发生时我是否正在失去连接。
【问题讨论】:
标签: c# wcf stream httpwebrequest httpwebresponse