Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C#]Foutmelding E_ACCESSDENIED; wat te doen

Pagina: 1
Acties:
  • 157 views sinds 30-01-2008
  • Reageer

  • Razr
  • Registratie: September 2005
  • Niet online
Dag mensen,

Ik heb een stukje code wat een stukje tekst uit de source van een webpagina haalt. Deze webpagina is geopend op het form, m.b.v. een WebBrowser control.

Na het navigeren:
C#:
1
webBrowser.Navigate(link, "MainFrame");


word deze code uitgevoerd:
C#:
1
string link = s.GetLink(webBrowser.Document);


Dit roept vervolgens deze code aan die in een klasse staat:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
     
public string GetLink(HtmlDocument doc)
{
     //alleen als er 3 frames zijn
     string link = "";
     try
     {
          if (doc.Window.Frames.Count == 3)
          {
               //haal alle links op
               HtmlElementCollection links = doc.Window.Frames["MainFrame"].Document.Links;
               foreach (HtmlElement element in links)
               {
                    if (element.OuterText != null && element.OuterText.Contains("blaat"))
                    {
                    string[] deler = { "\"" };
                    string[] res = element.OuterHtml.Split(deler, 3, StringSplitOptions.None);

                    link = res[1];
                    break;
                    }
               }
          }
     }
     catch (UnauthorizedAccessException e)
     {
          MessageBox.Show("#1.1 Fout: " + e.Message);
     }
          return link;
}

Nu is het vreemde; de code werkt tot op zeker hoogte gewoon, bij het debuggen gaat het de 1e keer goed. En net meerdere keren :? , maar ik krijg nu allemaal de UnauthorizedAccessException... Om wat specifieker te zijn:

Toegang geweigerd. (Uitzondering van HRESULT: 0x80070005 (E_ACCESSDENIED))

Ik weet dat deze optreed op regel 23, dat is de regel dat de HtmlElementCollection wordt gevuld met de links.

Met google kwam ik uit op dingen als dat er dan nog een methode actief is en dat wanneer deze dan actief word er een fout optreedt ? Ik heb al op andere manier geprobeerd de HtmlDocument door te geven maar de error blijft komen :(
Hoe kan ik dit gewoon laten werken ?

edit:
------
Heb nog geprobeerd om een for-loop te gebruiken, mocht ook niet baten. En ook de code direct binnen de form plaatsten had geen resultaat... ;(

[ Voor 4% gewijzigd door Razr op 03-10-2007 21:53 ]


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
staat er toevallig script op de pagina?
Draai je wel in full trust?

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • Razr
  • Registratie: September 2005
  • Niet online
4of9 schreef op donderdag 04 oktober 2007 @ 09:07:
staat er toevallig script op de pagina?
Draai je wel in full trust?
Ja de applicatie is full trust, en er staat wel javascript op, maar dit mag niet uitmaken?

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
oeps... verkeerd gelezen :o

[ Voor 95% gewijzigd door 4of9 op 04-10-2007 10:12 ]

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • Razr
  • Registratie: September 2005
  • Niet online
*verkapte schop

Heb al dingen met permissions geprobeerd maar of ik doe het niet goed, of het helpt gewoon niet want ik blijf die error krijgen.

Echt niemand die dit weet ?

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Is niet gewoon het probleem dat frameset html pagina geen html element (images, tekste, links) bevat? Met andere woorden geeft doc.Window.Frames["MainFrame"] welke een HtmlDocument terug?

Het zou mij niet verbazen als je alleen de frame definie (<frame src="page.html" />) terug krijgt. Logischerwijs krijg je dan aan access errors als je probeert het document te benaderen.

Wat geeft QuickWatch (in debug mode) terug als je doc.Window.Frames["MainFrame"].Document uitleest? Of krijg je dan ook al een access error. Probeer dan eens alleen doc.Window.Frames["MainFrame"] uit te lezen.

If it isn't broken, fix it until it is..


  • Razr
  • Registratie: September 2005
  • Niet online
Niemand_Anders schreef op vrijdag 05 oktober 2007 @ 13:25:
Is niet gewoon het probleem dat frameset html pagina geen html element (images, tekste, links) bevat? Met andere woorden geeft doc.Window.Frames["MainFrame"] welke een HtmlDocument terug?

Het zou mij niet verbazen als je alleen de frame definie (<frame src="page.html" />) terug krijgt. Logischerwijs krijg je dan aan access errors als je probeert het document te benaderen.

Wat geeft QuickWatch (in debug mode) terug als je doc.Window.Frames["MainFrame"].Document uitleest? Of krijg je dan ook al een access error. Probeer dan eens alleen doc.Window.Frames["MainFrame"] uit te lezen.
Ja heb het net even gecontroleerd. De count van de document.Links.Count is 130, dus wel degelijk gevuld.

  • Razr
  • Registratie: September 2005
  • Niet online
Nog een kick dan maar, ben er nog niet uit :(

Had nog wat code toegevoegd om zeker te weten dat ik Full Trust rechten heb, maar dit maakt ook niets uit.

Heel vreemd is ook dat het soms wel werkt?! Het kan er ook niet aan liggen dat de pagina nog niet geladen is want de bron word pas benaderd nadat het DocumentCompleted event is uitgevoerd.
Pagina: 1