Avatar billede lasserasch Juniormester
16. december 2010 - 15:48 Der er 2 kommentarer

Eksekvering af Batch jobs fra C# Windows Service

Hejsa.


Jeg kører nogle store .cmd/.bat filer fra min C# kode, som er en Windows Service.

Setuppet er meget stort, men kort fortalt så modtager denne windows service en kommando via en Socket forbindelse og udfører så en bestemt handling alt efter hvilken kommando den modtager.

Det virker alt sammen fint nok, men jeg har et par spørgsmål ang. batch kørsler:


1. Jeg kan sætte redirectstandardoutput og redirectstandarderror til TRUE. Så kan jeg godt læse consol outputtet fra standardoutput egenskaben efter min consol applikation er afsluttet.

Men nu er det sådan at de batch filer jeg skal køre laver nogle ret hæftige operationer som kan tage 30 - 60 minutter.

Jeg ville gerne løbende kunne trække outputtet. Bare hvert minut eller lign.

Er der nogen som ved om man kan det, og i så fald kan give et eksempel herpå?



2. Hvis jeg ikke sætter de har utræks egenskaber, men bare kører .bat filen ganske alm. (Stadig fra min C# kode selfølgelig), så reagerer jobbet på en måde og kører helt som det skal. Men så snart jeg sætter redirectstandardoutput osv, så kan det finde på at fejle nogle steder.

Jeg kender ikke så meget til de konkrete .bat filer som skal køres, og de er meget advancerede og derfor alt for svære at forklare her, men tænkte på om der er nogen forskel som man skal være opmærksom på når man sætter redirectstandardoutput og UseShellExecute til true?

Er der nogle miljø variabler som ikke er tilgængelige eller er der andre forskelle?



Mvh.
Lasse
Avatar billede Syska Mester
16. december 2010 - 18:49 #1
Alt efter hvad bruger det er, så kan PATH vel være forskellig. Eneste jeg lige kan komme på.

mvh
Avatar billede Spotgun Seniormester
17. december 2010 - 09:14 #2
Mht. at læse StandardOutput eller ErrorOutput løbende, så kan det gøres asynkront vha BeginOutputReadLine og BeginErrorReadLine.

Der er nogle eksempler på MSDN, og jeg har vist også noget liggende fra et lignende projekt, hvis det var noget?
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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