Avatar billede baileys Nybegynder
19. april 2006 - 18:50 Der er 4 kommentarer

WebBrower-control i Windows Service i forkert thread

Jeg har en windows service som jeg ønsker at bruge en WebBrower i af specielle grunde...

Desværre får jeg en fejl; "Activex ... cannot be instantiated because the current thread is not in a single-threaded apartment."

Efter lidt søgen fandt jeg ud af at det er fordi den ikke bliver instantieret i en STAThread... Men selv med denne attribute på metoden der opretter WebBrowseren.

Nogen forslag`?
Avatar billede jens_klinting Nybegynder
19. april 2006 - 20:43 #1
Jeg har et bud.

System.STAThread attributten skal ikke sættes på metoden, hvor du opretter instansen af WebBrowseren men på entry-pointet for din service, f.eks:

[System.STAThread]
static void Main()
{
  //...
}

// Jens
Avatar billede baileys Nybegynder
20. april 2006 - 08:40 #2
Hej Jens,

Jeg har prøvet dit forslag, men desværre får jeg stadig en fejl (skal lige undersøge om det er den samme, eller om jeg har dummet mig).

Sådan som det hænger sammen, har jeg en "dum" service (som jeg har markeret med STAThread), som så loader en masse assemblies under samme appdomain og aktivere - disse kan så tilgåes fra mange forskellige threads.
Avatar billede baileys Nybegynder
21. april 2006 - 10:29 #3
Desværre - samme problematik...
Avatar billede tuxic Nybegynder
23. april 2006 - 18:58 #4
Hvad er en webbrower? (Lyder sikkert spydigt, men det er det ikke ment sådan). Hvis der  tænkes på en WebBrowSer control er det tvivlsomt om det kan virke. Services interagere almindeligvis med den anonyme desktop (som ingen interaktive brugere kan tilgå). Hvis man vil kan man tilrette servicen så den tilgår en brugers desktop. Men det opfattes af nogle som en sikkerhedsbrist. I alle tilfælde lyder det som du måske skulle gentænke designet (eks lave en klient der spørger servicen om dens tilstand og så kan klienten vise det).

Men hvordan skal det overhovedet komme til at virke? Startes en messagepump for services?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester