Windows Service - não executa corretamente na primeira vez
09/01/2013
0
Estou desenvolvendo um windows service para realizar backup de repositorios, estou testando com 2 repositorios e gerar um arquivo de log bem simples com intervalo de 1 em 1 minutos fazer o backup (apenas pra teste, logo o intervalo ira aumentar), porem ele na primeira execução faz o backup apenas do 2º repositorio e gera o log, e a partir da 2ª repetição executa corretamente, fazendo backup dos 2 repositorios e gerando o log.
public void Backup(object sender, ElapsedEventArgs e) { DateTime horario = DateTime.Now; Directory.Exists(@"C:\Repositories"); //if (horario.Hour == 0 && horario.Minute == 0) //{ int i = 1; ProcessStartInfo processStartInfo = new ProcessStartInfo(); processStartInfo.FileName = "cmd.exe"; processStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; processStartInfo.CreateNoWindow = true; processStartInfo.RedirectStandardInput = true; processStartInfo.RedirectStandardOutput = true; processStartInfo.UseShellExecute = false; foreach (string diretorio in Directory.GetDirectories(@"C:\Repositories")) { Process process = Process.Start(processStartInfo); process.StandardInput.WriteLine(@"cd c:\Arquivos de programas\visualsvn server\bin"); process.StandardInput.WriteLine(@"svnadmin dump " + diretorio + @" > C:\BackupTeste" + i.ToString() + ".svn"); i++; } GerarLog(); // } } //Gera o log mostrando o horário de realização de cada backup. public void GerarLog() { List<string> p = new List<string>(); p.AddRange(Directory.GetDirectories(@"C:\Repositories")); int qtd = p.Count(); string texto = ""; string[] linhas = null; if (File.Exists(@"C:\backupRealizado.txt")) { linhas = File.ReadAllLines(@"C:\backupRealizado.txt"); foreach (var x in linhas) { texto += x + "\r\n"; } } texto += "Iniciado backup de " + qtd.ToString() + " repositorios. \r\nEm: " + DateTime.Now.ToString() + "\r\n"; StreamWriter sw = File.CreateText(@"C:\backupRealizado.txt"); sw.WriteLine(texto); sw.Close(); }
O evento que realiza o backup e o metodo que irá gerar o log..
Já testei o mesmo código em uma aplicação e funcionou corretamente.
E quando tira o GerarLog(), ele faz o backup corretamente desde a 1ª repetição.
Qualquer ajuda será bem vinda!
Obrigado
Gustavo Henrique
Posts
10/01/2013
Gustavo Henrique
27/07/2013
José
Estou dando o tópico por ooncluído.
Clique aqui para fazer login e interagir na Comunidade :)