http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 6329|回复: 9

[反馈建议] 帮忙看看 这地方报错是怎么回事

[复制链接]
发表于 2016-7-25 14:08:18 | 显示全部楼层 |阅读模式
        public HttpResult GetHtml(HttpItem item)
        {
            //返回参数
            HttpResult result = new HttpResult();
            try
            {
                //准备参数
                SetRequest(item);
            }
            catch (Exception ex)
            {
                //配置参数时出错
                return new HttpResult() { Cookie = string.Empty, Header = null, Html = ex.Message, StatusDescription = "配置参数时出错:" + ex.Message };
            }
            try
            {
                //请求数据
                using (response = (HttpWebResponse)request.GetResponse())
                {
                    GetData(item, result);
                }
            }
            catch (WebException ex)
            {
                if (ex.Response != null)
                {
                    using (response = (HttpWebResponse)ex.Response)
                    {
                        GetData(item, result);
                    }
                }
                else
                {
                    result.Html = ex.Message;
                }
            }
            catch (Exception ex)
            {
                result.Html = ex.Message;
            }
            if (item.IsToLower) result.Html = result.Html.ToLower();
            return result;
        }
红色的那一句报错  
信息 是:“System.AccessViolationException”类型的未经处理的异常在 System.dll 中发生

其他信息: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2016-7-25 20:18:59 | 显示全部楼层
站长苏飞 发表于 2016-7-25 16:14
你是不是在高度状态下看到了,应该是把这部分错误打印出来,而不是调试

调试的时候多线程是一定会出错的 ...

解决了,我线程池的问题,调用了window的dll用了iocp的线程池,更换线程池后,不在报错
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-7-25 14:10:37 | 显示全部楼层
多线程环境下  
发表于 2016-7-25 14:19:30 | 显示全部楼层
怎么写的代码,就是怎么访问的。
 楼主| 发表于 2016-7-25 14:26:08 | 显示全部楼层
站长苏飞 发表于 2016-7-25 14:19
怎么写的代码,就是怎么访问的。

在线代码生成的  一点都没改动
 楼主| 发表于 2016-7-25 14:28:08 | 显示全部楼层
站长苏飞 发表于 2016-7-25 14:19
怎么写的代码,就是怎么访问的。

后来换了 1.9的dll  也报错
代码片段:
   HttpHelper http = new HttpHelper();
                HttpItem item = new HttpItem()
                {
                    URL = "http://user.qzone.qq.com/p/r/cgi-bin/qzone_dynamic_v7.cgi?uin=" + iValue + "&param=4|848|311",//URL     必需项
                    ResultType = ResultType.String,//返回数据类型,是Byte还是String
                };
                HttpResult result = http.GetHtml(item);
                string html = "";
                html = result.Html;
红色的部分报错
 楼主| 发表于 2016-7-25 14:29:41 | 显示全部楼层
站长苏飞 发表于 2016-7-25 14:19
怎么写的代码,就是怎么访问的。

错误信息 :
“System.AccessViolationException”类型的未经处理的异常在 System.dll 中发生

其他信息: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
 楼主| 发表于 2016-7-25 16:04:51 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-7-25 16:12:35 | 显示全部楼层
@站长苏飞
回复

使用道具 举报

发表于 2016-7-25 16:14:17 | 显示全部楼层
你是不是在高度状态下看到了,应该是把这部分错误打印出来,而不是调试

调试的时候多线程是一定会出错的,调试是没有办法调试多线程数据的。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-22 06:00

© 2014-2021

快速回复 返回顶部 返回列表