我在VB.NET控制台应用程序中使用mshtml库从http请求中提取一些数据。
代码如下:
Dim htmlDocument As IHTMLDocument2
For i As Integer = 0 To 10
searchHtml = getHtml(url)
htmlDocument = New HTMLDocumentClass()
htmlDocument.write(searchHtml)
htmlDocument.close()
Dim results As IHTMLElement = htmlDocument.body.all.item("ires")
For Each li As IHTMLElement In results.all.tags("li")
Dim element As IHTMLElement = li.all.tags("cite")(0)
If element.innerText.ToLower().Contains(text) Then
' Do Something here
Exit For
End If
Next
Next
上面的代码是从另一个方法递归调用的。
我可以在调试中运行我的代码,它可以一次又一次地运行,没有任何问题。
如果我编译exe并运行它,那么我会收到两个错误之一。最初,在11次调用之后,我得到了一个“对象引用未设置为对象的实例”。这是可重复的,并且总是在11次迭代后发生。
如果我在上面之前添加Threading.Thread.Sleep(1000)并重新编译,我会在经过一定次数的迭代后再次收到“访问被拒绝”错误。