对于类函数内的HtmlElement,访问被拒绝

时间:2013-06-26 19:19:23

标签: vb.net vb.net-2010

我有一个循环遍历vb.net中的一组链接的函数:

For Each category As HtmlElement In fs.cats
   fs.run_fetch(category)
   outToCSV(fs.results, "C:\Data\test.csv")
   outToCSV(fs.errors, "C:\Data\errors.csv")
Next

它适用于第一个循环,但一旦进入第二个循环,fs.run_fetch(类别)就会给我 *访问被拒绝。 (尝试运行以下内容时,HRESULT异常:0x80070005(E_ACCESSDENIED))*

Public Sub run_fetch(ByVal category As HtmlElement)
        Dim itemsonpage As HtmlElementCollection
        Dim title, id, salePrice, regPrice As String
        Dim numberOnSale, currentPage As Integer
        'navigate to category page
        loadPage(category.GetAttribute("href")) **<- error here**

1 个答案:

答案 0 :(得分:1)

对于某些人来说,这可能是显而易见的,但是在vb.net中定义为HTMLElement或HTMLElementCollection的变量始终是引用

因此,当您导航到另一个页面时,对变量的引用将丢失(即您的变量引用的网页不再存在于“内存中”并且引用已经过时了)

我的解决方案是将链接(我从网页上删除的网址)保存到一个列表(字符串)中,因此他们不再引用该页面并在内存中直到您清除它为止。