Problemi creazione servizio windows (come applicazione console funzion...

martedì 14 aprile 2009 - 08.57

Cuky Profilo | Newbie

Ho il codesto problema:
Sto creando un piccolo applicativo che, ricevuta la segnalazione di creazione di un file in una cartella (filesystemwatcher) se si tratta di un pdf lo stampa su una determinata stampante.
Lancio quindi un nuovo processo tramite un comando shell con acrord32 + i parametri e todo funziona. Funziona come applicazione console.
Lo stesso codice se lo utilizzo tramite servizio windows non mi funziona.
Eseguo il debug connettendomi al processo ma quando lancia il comando: acrord32.exe /t nomefile nomestampante mi crea il processo (lo vedo nel task manager) ma non fa nulla.
Nella esecuzione corretta tra l'altro dovrebbe chiuderlo il processo dopo aver lanciato la stampa; in modalità servizio lo lascia in esecuzione senza appunto far nulla.
Qualcuno sa darmi qualche dritta?
grazie
ciao


Fatti pagare per giocare a Poker On-Line
http:\\www.rakebackitalia.net

rossimarko Profilo | Guru

Ciao,

prova a verificare l'utente con cui fai girare il servizio. Quando lo installi hai la possibilità di dirgli con che utente farlo girare (di solito localsystem). Magari è un semplice problema di permessi (se lo fai girare come console utilizza l'utente con cui sei loggato in windows)
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

Cuky Profilo | Newbie

Ho controllato ed effettivamente con la console application viene eseguita sotto l'account Administrator mentre con il servizio sotto SYSTEM.
Quindi ho provato a cambiare la modalità con la proprietà:

this.serviceProcessInstaller1.Password = "passw";
this.serviceProcessInstaller1.Username = "NomeAccount";
//
// serviceInstaller1
//
this.serviceInstaller1.ServiceName = "AutoPrintAttachmentsMC";
//
// ProjectInstaller
//
this.serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic;

this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.User; //invece che LocalSystem

Ma in fase di installazione del servizio mi dice che non esiste un account con questa password o che non è stato effettuato il mapping fra gli account e gli id di protezione.
Le credenziali sono ovviamente corrette

Cosa può essere?




Fatti pagare per giocare a Poker On-Line
http:\\www.rakebackitalia.net

rossimarko Profilo | Guru

Hai provato ad installarlo come local system e a cambiare poi dalla console di gestione dei servizi le informazioni sull'account che fa girare il tutto?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

Cuky Profilo | Newbie

Come hai fatto a rispondere così veloce?
Non è umanamente possibile...

grazie
adesso provo...


Fatti pagare per giocare a Poker On-Line
http:\\www.rakebackitalia.net

Cuky Profilo | Newbie

Ho impostato administrator e me l'ha preso, ma ikl risultato è il medesimo.
Il problema evidentemente non riguarda i permessi. Ho controllato nel task manager e i processi vengono avviati, ma non viene lanciata la stampa nè visualizzata comunque la GUI di acrobat reader.
Esistono delle limitazioni da servizio windows per il lancio delle applicazioni? (sparo)


Fatti pagare per giocare a Poker On-Line
http:\\www.rakebackitalia.net

rossimarko Profilo | Guru

Nelle proprietà del servizio, sezione logon c'è una check "Interact With Desktop".

Devi impostarla se fai cose particolari con l'interfaccia. Considera che i servizi di solito non hanno assolutamente un'interfaccia utente e non nascono per interagire con quest'ultima.
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

Cuky Profilo | Newbie

Evidentemente è cosi'. Imposto come console application
Ciao
grazie


Fatti pagare per giocare a Poker On-Line
http:\\www.rakebackitalia.net

xhunter Profilo | Newbie

Io ho avuto il medesimo problema.
Ho sviluppato un servizio di windows che, su Windows XP funziona perfettamente ma su Windows Vista, dopo averlo installato ed avviato correttamente, non ha mai funzionato.

Ho provato tutti i metodi trovati online ma niente.
Credo che il tutto sia da ricondursi al fatto che Vista gestisce i servizi dandogli automaticamente il livello più basso di privilegi, cosa che su XP non accadeva.
Non sono cmq mai riuscito a risolvere questo problema.

Stai usando pure tu Windows Vista?

rossimarko Profilo | Guru

Ciao,

verifica l'utente con cui fai girare il servizio perchè è quello che determina i privilegi. Io ho servizi che prima giravano su xp e adesso girano tranquillamente su vista. In entrambi i casi dovevo accedere a dei path di rete quindi li facevo girare con un utente del dominio
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

Cuky Profilo | Newbie

A me funzione perfettamente in windows xp e invece non gira su windows server 2003
ciauz


Fatti pagare per giocare a Poker On-Line
http:\\www.rakebackitalia.net
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5