gpt4 book ai didi

msxml3.dll 错误 80070005 拒绝访问

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章msxml3.dll 错误 80070005 拒绝访问由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

昨天在采集某一个网站的时候,采集程序出错了。 是自写的采集程序。 经过搜索以后,查到一些没有用的结果,后来发现,用Msxml2.ServerXMLHTTP替换掉Msxml2.XMLHTTP,问题成功解决。 以下是分析排错过程。 老是采集一段时间就挂了,指定资源下载失败,或者拒绝访问。 后来直接全部是拒绝访问。 一开始,认为,对方服务器做了防采集设置,比如有时间限制之类的。 于是更改程序,原先是直接获取列表页,然后持续循环获得文章列表。改了采集文件结构, 原来是就一个文件,类,数据库连接,数据处理全部在一个文件里,再采集某一篇文章的时候,后天加了一个时间循环。等待5秒的。代码如下 。

复制代码 代码如下

sTime=Timer() dTime=Timer()-sTime do while dTime < 5 dTime=Timer()-sTime loop 。

确实是能等待5秒钟,但是很快就发现,这个循环太过消耗CPU资源,一到这个循环,CPU占用率持续100%,于是马上放弃这个方案。 另做了一个文件。只根据文章URL抓取文章的相关内容并写入数据库,写入完毕后输出自动跳转代码。 核心思想就是用了<meta http-equiv="refresh" content="5;url=someurl.asp"> 这是一个定时跳转的代码,相信大家都很熟悉。 我的原理做法就是,用一开始的文件,抓取所有的文章连接地址,以及相关导航代码,保存到数据库中。 然后用新做的抓取文章内容的程序,读取数据库记录,逐条进行采集。 数据库记录中有一个flag标记,tinyint类型,默认是0,采集成功更新为1,失败更新为2 这样,每次从数据库中读取一条未采集的数据,也就是读取flag=0的数据,进行操作。操作完毕等待5秒跳转到自身。 想法跟思路是很好的。文章URL数据库也采集准备好了,一上采集文章具体内容,又出错了。一直是msxml3.dll 错误 '80070005' 拒绝访问的错误。 那个郁闷,想开一晚上机器,自动采集,破灭。 今天早上来搜索查询资料,查询到的绝大多数都是无用信息。 基本上都是说权限问题。 msxml3.dll 错误 '80070005' 拒绝访问。 解决办法: 赋予程序所在文件夹 internet 来宾帐号(IUSR_WEB)可写。 做法: 选择cachefile-属性-安全-添加(IUSR_WEB)-写入 都是这么说的。莫名其妙的,我的是FAT32的不存在NTFS格式的那种安全权限问题,IIS设置也正常, 我的问题是采集一部分就拒绝访问。肯定不是这个问题。 继续搜索,找到另一个方案说是,用Msxml2.XMLHTTP替换掉Microsoft.XMLHTTP,我本来用的就是Msxml2.XMLHTTP的 继续搜索。找到最终解决方案应该是用Msxml2.ServerXMLHTTP 先前也搜到这个结果,由于大意,没有及时注意到,以下是搜索过程找到的有用的相关资料。 代码如下:

复制代码 代码如下

PostUrl=http://www.xxx.com/ Server.ScriptTimeOut=20 Set oXMLHttp = createObject("Microsoft.XMLHTTP") Call oXMLHttp.Open("get", PostUrl, false) Call oXMLHttp.Send("") sHtmlStr = oXMLHttp.responseBody Set oXMLHttp = nothing 。

初步判定可能是打开的页面有跳转的原因,解决办法是用 MSXML2.ServerXMLHTTP 替换掉 Microsoft.XMLHTTP 即可解决。 另外在CSDN上找到这么一段代码 。

复制代码 代码如下

ServerURL=PostUrl Set Mail1 = Server.CreateObject("CDO.Message") Mail1.CreateMHTMLBody ServerURL,31 AA=Mail1.HTMLBody Set Mail1 = Nothing Response.Write AA 。

试了一下,也可以用,拷过来收藏   。

复制代码 代码如下

<% ' 定义变量 Dim objXmlHttp Dim strHTML '这是Msxml3.0中的一个稳定版本. '使用Msxml2.ServerXMLHTTP,不使用Msxml2.XMLHTTP Set objXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP") ' 如果你发现以下错误 ' msxml3.dll error '80070005' ' 存取被拒绝. ' 可能是上网时使用了代理产生了错误 ' 使用 proxycfg.exe 工具. : ' ' proxycfg -d ' 检查是否采用了代理上网 ' 同时可以参看这个帖子: http://www.asp101.com/forum/display_message.asp?mid=51841 ' ' 这个版本太旧且不稳定 'Set objXmlHttp = Server.CreateObject("Msxml2.XMLHTTP") ' 现在我们开始发送请求. ' 套用微软的话来讲: 初始化一个请求,并且指定该请求的方法(get,post等等), ' URL, 和权限验证信息(用户名,密码,等等)。 ' 格式: ' .open(bstrMethod, bstrUrl, bAsync, bstrUser, bstrPassword) 'objXmlHttp.open "GET", "http://www.yahoo.com", False objXmlHttp.open "GET", "http://www.yahoo.com", False ' 以直接的方式发送请求出去. objXmlHttp.send ' 打印返回状态: Response.Write "Status: " & objXmlHttp.status & " " _ & objXmlHttp.statusText & "<br />" ' 获取响应返回的文本. ' 这个对象本身是用来操作XML的,所以具备以下属性: ' responseBody, responseStream, 和 responseXML. ' 但是我们现在只需要文本信息 strHTML = objXmlHttp.responseText ' 但这个对象实例不再使用时,需要清除这个对象实例. Set objXmlHttp = Nothing ' 现在我们要做的就是显示我们获取到的HTML. ' 首先看浏览器解释的效果 ' 然后显示其源码 ' 下面的类似<h1>s 和 <table>s只是为了展现获取到的内容,本身不属于获取的内容. %> <h1>Here's The Page:</h1> <table border="1" bgcolor="#FFFFFF"> <tr><td> <%= strHTML %> </td></tr> </table> <br /> <h1>Here's The Code:</h1> <table border="1" bgcolor="#FFFFFF"> <tr><td> <pre> <%= Server.HTMLEncode(strHTML) %> </pre> </td></tr> </table> 。

最后此篇关于msxml3.dll 错误 80070005 拒绝访问的文章就讲到这里了,如果你想了解更多关于msxml3.dll 错误 80070005 拒绝访问的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com