需求:写一个Windows服务,定时从指定的URL抓取返回内容,分析抓取的结果。
代码如下:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
//设置request
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//处理response
遇到的问题:服务启动后第一次抓取没有问题,后面都没有响应,debug跟踪到上面第二行GetResponse()时,无反应,未抛出异常,但也不继续执行。
解决方法:WebResponse使用完后必须调用Close()方法(或相应的Stream.Close()方法)关闭响应,否则可能会出现上述问题。
本文介绍了一个Windows服务的设计,该服务能够定时从指定URL抓取内容并进行分析。但在实现过程中遇到了服务启动后首次抓取成功而后续无法响应的问题。通过debug定位到了GetResponse()方法处停滞,并最终发现未关闭WebResponse导致了这一现象。

被折叠的 条评论
为什么被折叠?



