02. november 2007 - 10:54Der er
10 kommentarer og 1 løsning
Windows service og load af DLL til AppDomain
Hej
Jeg sidder og skal til at lave vores hovedopgave på Datamatikerstudiet om til en windows service, det kører pt som en normal Windows Form, dog uden noget grafisk blot så den kan startes let.
Problemet ligger her i, at når vi laver det om, uden at ændre koden så vil den pludselig ikke loade den DLL dynamisk som vi kan hvis det kører som Windows Form.
Koden ser således ud:
assembly = domain.Load(Properties.WorkflowData);
hvor Properties.WorkflowData indeholder et byte-array med workflowet. Der burde da ikke være nogen forskel, gjorde der?
Det er så den sidste linie der giver problemer ...
Indtil videre har vi overvejet om et evt. kunne være nogen rettigheder der ikke er på plads? dog hvis vi sætter selve servicen til at starte med vores eget login virker det stadig ikke.
takker :) ... var den desværre sat til (LocalSystem). Problemet ligger heller ikke i, at den ikke vil starte selve servicen, men i at loade vores DLL'er med workflows senere runtime ... som ovenstående kode burde klare og også gør når vi bare kører programmet som et normalt Windows Program og ikke en Service
Vi får følgende fejlmeddelse ihvertfald, men filen ligger der:
Could not load file or assembly 'WorkFlowExample3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
Din service kører i %systemroot%\System32. Så det er faktisk current dir. Prøv som noget af det første I gør, at ændre Environment.CurrentDirectory til Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
Hej ... jeg fik da vist aldrig delt point, sorry. Men vi fandt aldrig løsningen i vores applikation, men i andre virkede det vi lavede ... men hvis i smider et svar deler i dem bare, så er det vist fair? :)
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.