首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

高分求解--抓取程序遇到的很奇怪有关问题

2012-02-13 
高分求解--抓取程序遇到的很奇怪问题!我用HttpWebRequestrequest(HttpWebRequest)WebRequest.Create(Url)

高分求解--抓取程序遇到的很奇怪问题!
我用

          HttpWebRequest   request   =   (HttpWebRequest)
                                          WebRequest.Create(Url);
                                HttpWebResponse   response   =   (HttpWebResponse)
                                request.GetResponse();
                                Stream   resStream   =   response.GetResponseStream();
                                StreamReader   sr   =   new   StreamReader(resStream,   Encoding.Default);
           
          取得网页的内容,程序是能够很好的运行的,但运行一段时间后总出现这样的错误提示:
 “     上下文“0x1a1db0”已断开连接。正在从当前上下文(上下文   0x1a1c40)释放接口。这可能会导致损坏或数据丢失。要避免此问题,请确保在应用程序全部完成   RuntimeCallableWrapper   (表示其内部的   COM   组件)之前,所有上下文/单元都保持活动状态。”
    在   baidu/google   上搜索 "0x1a1db0 "一条数据也没!

   还有我抓取时每抓一条数据就往.txt文件中写入一条记录,程序运行后内存猛增,我在每一次循环执行后都加了
         GC.Collect();
                        GC.WaitForPendingFinalizers();
                        GC.Collect();
 还是一样,没有任何效果。

   请问高手怎么能够解决这些问题啊,多多感谢!


[解决办法]
抓取程序通常需要加个try
[解决办法]
另外记得close
[解决办法]
加try catch
如果发生异常,循环重试

能Close的Close
能Dispose的Dispose
[解决办法]
应该是流的问题 你抓后要将resStream 释放 StreamReader 读完后关闭 关闭前再dispose一下看看问题是否还出现
[解决办法]
sr和response没Close

热点排行