关于HttpWebRequest问题
我的程序用完HttpWebRequest会留下无数个time wait的tcp连接,不知道是自己的原因还是服务器程序,请问HttpWebRequest的正确释放方法是怎样啊?或者说如果是服务器的原因,服务器程序不是我写的,请问怎样解决这样的问题啊? --------------------编程问答-------------------- 有没什么强制关闭某个tcp端口的方法啊? --------------------编程问答-------------------- 要记得Dispose那些HttpWebResponse。 --------------------编程问答-------------------- 很多时候释放了HttpWebResponse 还不够,客户端的HttpWebRequest 还是在保持着,需要等垃圾回收器来回收,所以一般很容易阻塞,导致请求发送不出去。程序如下便没有问题了:HttpWebRequest req = null;
HttpWebResponse res = null;
try
{
//使用HttpWebRequest,HttpWebResponse和webservice
}
catch
{
}
finally
{
//使用完后要进行释放,否则易造成网络堵塞
if (req != null)
{
req.Abort();
}
if (res != null)
{
res.Close();
}
}
--------------------编程问答-------------------- finally,这个其实是很重要的一部分 --------------------编程问答--------------------
我都调用了,可是还是time wait,这又是怎么回事呢?我用端口察看工具看了,是服务器程序里与我的程序连接的socket还处于time wait,我的程序里的socket已经关闭了,请问这是怎么回事呢 --------------------编程问答-------------------- time wait的连接属于服务器未响应? --------------------编程问答-------------------- 每个response都要调用response.Close()方法去关闭的 --------------------编程问答-------------------- 这个你再释放也不会立即消失的,这是系统的事,就像你ie关闭后也同样会出现一些time wait,这个不用在意一会就没了。 --------------------编程问答--------------------
我现在有个程序有10000个左右的time wait,会影响系统性能吗?fuck,真他吗的fuck
补充:.NET技术 , C#