我在 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) 并重新编译,我会在一定次数的迭代后再次收到“访问被拒绝”错误。