Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
C# Lancio Applicazione da operazioni pianificate
sabato 19 ottobre 2013 - 09.27
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
.NET 2.0
|
Windows 7
|
Visual Studio 2010
|
MySQL 5.1
enio58
Profilo
| Newbie
7
messaggi | Data Invio:
sab 19 ott 2013 - 09:27
Cari amici
Ho creato una applicazione in C# che deve essere mandata in esecuzione ad una certa ora del giorno. Se la lancio normalmente funziona, ma se la faccio lanciare in automatico tramite le operazioni pianificate mi appare una finestra che dice "l'applicazione ha smesso di funzionare..." e si chiude senza neanche avviare il programma. Ho fatto le seguenti prove.
Il mio PC ha Windows 7
Ho provato ad avviarlo direttamente FUNZIONA
Ho provato ad avviare un'altra applicazione (Excel) con la stessa operazione pianificata FUNZIONA
Ho provato a cambiare utente nella pianifica NON FUNZIONA
Ho provato a fare la stessa operazione pianificata su PC con Windows XP FUNZIONA
Qualcuno può darmi una mano
Grazie di cuore
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
dom 20 ott 2013 - 22:53
che tipo di applicazione è: windows form/wpf o console application?
hai provato a mettere un utente amministratore della macchina?
hai provato a controllare l'event viewer di sistema per vedere che errore in particolare sta restituendo e in che punto?
ciao
-------------------------------------------------------
Michael Denny
Lead Software Developer & Solutions Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
enio58
Profilo
| Newbie
7
messaggi | Data Invio:
gio 24 ott 2013 - 12:10
Si, l'utente che avvia l'operazione pianificata è amministratore della macchina.
Quando si avvia l'operazione pianificata, sono andato a vedere nel registro degli eventi e mi appare il seguente messaggio:
Nome dell'applicazione che ha generato l'errore: AutoBackup.exe, versione: 1.0.0.0, timestamp: 0x525e5669
Nome del modulo che ha generato l'errore: KERNELBASE.dll, versione: 6.1.7601.18015, timestamp: 0x50b83b16
Codice eccezione: 0xe0434f4d
Offset errore 0x0000812f
ID processo che ha generato l'errore: 0x%9
Ora di avvio dell'applicazione che ha generato l'errore: 0x%10
Percorso dell'applicazione che ha generato l'errore: %11
Percorso del modulo che ha generato l'errore: %12
ID segnalazione: %13
Io non so interpretarlo purtroppo.... se mi puoi aiutare ti ringrazio di cuore
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
sab 26 ott 2013 - 22:28
scusa il ritardo nel risponderti....
per caso l'eseguibile .net è lanciato da una folder di rete (cartella condivisa)?
-------------------------------------------------------
Michael Denny
Lead Software Developer & Solutions Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
sab 26 ott 2013 - 22:32
oppure utilizzi del codice unmanaged? codice che non è del framework .net, come chiamate ad oggetti COM, oppure a windows API.
-------------------------------------------------------
Michael Denny
Lead Software Developer & Solutions Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
enio58
Profilo
| Newbie
7
messaggi | Data Invio:
dom 27 ott 2013 - 06:57
la cartella è sul mio PC sulla quale ovviamente ho tutti i diritti.
L'applicazione (C#) crea un file batch che viene eseguito dallo stesso programma.... ecco qui il codice nel metodo Load:
private void Form1_Load(object sender, EventArgs e)
{
string cTesto;
string cDataOdierna;
FileStream cFile;
Process App;
cDataOdierna = utils.DtoC(DateTime.Today).Substring(0,2)+"-"+utils.DtoC(DateTime.Today).Substring(3,2)+"-"+utils.DtoC(DateTime.Today).Substring(6,4); //SubStr(DToC(Today()),1,2)+"-"+SubStr(DToC(Today()),4,2)+"-"+SubStr(DToC(Today()),7,4)
cTesto = "Echo off\r\n";
cTesto += "mysqldump --host=" + Program.cIPAddress + " --user=utente --password=ed230558 --port=3306";
cTesto += " --quick --add-drop-table -v \"" + utils.oSqlConn.Database + "\"" + " > \"" + Program._CARTELLABACKUP + ("\\") + utils.oSqlConn.Database + " " + cDataOdierna + ".sql\"\r\n";
System.IO.File.Delete("auto_backup.bat");
cFile = File.Create("auto_backup.bat");
cFile.Close();
System.IO.File.WriteAllText("auto_backup.bat", cTesto);
App = new Process();
App.StartInfo.FileName = "auto_backup.bat";
// App.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
App.Start();
App.Close();
this.Close();
}
}
Nota : Program._CARTELLABACKUP è una variabile Globale contenente la path di dove voglio memorizzare il file del
backup, che viene letta da un file XML esterno.
<?xml version="1.0" encoding="utf-8"?>
<SET>
<cartellabackup>D:\DiniMySQL\allegati</cartellabackup>
</SET>
Il bello è che se lancio l'applicazione senza farla avviare dalle operazioni pianificate, mi funziona benissimo.
Grazie per la disponibilità
Enio
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
dom 27 ott 2013 - 15:14
Hai la necessità per forza di creare un batch file, non potresti semplicemente completare il comando sfruttando la classe managed Process? Compilando correttamente la proprietà Arguments che trovi dentro a StartInfo.
Nello scheduler hai provato ad utilizzare il tuo stesso utente che utilizzi quando sviluppi? o hai messo un utente di sistema?
-------------------------------------------------------
Michael Denny
Lead Software Developer & Solutions Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
Torna su
Stanze Forum
Elenco Threads
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 !