350 messaggi dal 08 febbraio 2009
Salve a tutti..

Ho un banale servizio scritto in C# 2008 Express.
Se compilo il progetto e lo installo sul mio computer mediante installutil, funziona tutto bene.

Se copio gli oggetti (directory bin/Release) sul computer di un mio amico e lo installo, tutto sembra funzionare bene (ovvero il servizio è installato).

Se però provo a lanciare il servizio, esce con errore dicendo che non è riuscito a lanciare il servizio (non trovo alcuna informazione utile nel registro di sistema se non il fatto che è "scaduto il tempo").


A questo punto ho dato a lui i sorgenti, ho installato C#2008, ricompilato, installato e tutto è andato a buon fine.


Alla fine, per vedere cosa potesse essere, ho provato ad installare tale servizio su un terzo PC...
Se lo compilo col mio PC non funziona.
Se lo compilo col PC del mio amico va...


Cosa posso controllare?

PS: Non uso dll particolari se non quelle di log4net (per i log), però quella DLL ho verificato fosse la stessa
La prova del 9 è sicuramente provare il servizio senza fargli fare niente, per capire se il tuo codice ha dei prerequisiti che gli possono dare problema. Dato che usi log4net potresti intercettare tutto (nello start) e farti scrivere che eccezioni si verificano. Magari con log4net scrivi in una dir dove non puoi? Che utente usi? Usi differenze di compilazione x86/x64 o usi any cpu?

Ciao

Il mio blog
Homepage
350 messaggi dal 08 febbraio 2009
Nella "start" scrivo già dei log, però questi non vengono scritti.

Ho provato a fare un po' di prove sui permessi (perchè è la prima cosa a cui ho pensato), però li escluderei, poichè ho provato a cambiare l'utente del servizio per usare lo stesso con cui ci si logga... E con quell'utente possiamo scrivere in tutte le cartelle.

Ho anche provato a dargli l'utente Administrator, però non cambia nulla.

Per la compilazione, non ci avevo guardato, però uso "Any CPU"...


Per quanto riguarda i "pre-requisiti", se io prendo il mio codice (tutta la soluzione), la porto su un altro pc e semplicemente "la ricompilo", perchè dovrebbero cambiare i pre-requisiti?

Ovvero, io ho preso la cartella completa del progetto e l'ho copiata su un altro computre.
Ho aperto da entrambi i computer il progetto su C# 2008 ed ho verificato che tutti i tab di "Proprietà" della soluzione fossero identici.

Compilo...

Prendo la directory "bin\Release" del mio computer ed installo quel servizio... Non va
Prendo la medesima directory dell'altro computer... Funziona

In tal caso, come posso verificare se c'è qualcosa a livello di "pre-requisiti"?


Ad ogni modo, appena posso, provo a creare un servizio "vuoto" e vedo cosa succede... (purtroppo non ho qui tutti i PC per fare le prove)

L'unica cosa che mi è venuta in mente... Il mio è un PC su VmWare (ovvero è una Virtual Machine) mentre il suo è un PC fisico...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.