当前位置:编程学习 > C#/ASP.NET >>

关于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,这个其实是很重要的一部分 --------------------编程问答--------------------
引用 2 楼 gomoku 的回复:
要记得Dispose那些HttpWebResponse。

我都调用了,可是还是time wait,这又是怎么回事呢?我用端口察看工具看了,是服务器程序里与我的程序连接的socket还处于time wait,我的程序里的socket已经关闭了,请问这是怎么回事呢 --------------------编程问答-------------------- time wait的连接属于服务器未响应? --------------------编程问答-------------------- 每个response都要调用response.Close()方法去关闭的 --------------------编程问答-------------------- 这个你再释放也不会立即消失的,这是系统的事,就像你ie关闭后也同样会出现一些time wait,这个不用在意一会就没了。 --------------------编程问答--------------------
引用 7 楼 zhujiazhi 的回复:
每个response都要调用response.Close()方法去关闭的

我现在有个程序有10000个左右的time wait,会影响系统性能吗?fuck,真他吗的fuck
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,