2
Is there any way to make a Windows service created on c# don’t give Stop()
after a Exception
?
The service was created with a timer
, which will run every 1 hour, but there was an error in the execution and returned a exception
, until then all right, the problem is that when the time came, the timer
did not start.
Need to do some specific treatment on Catch
?
The section below is called when the Timer
is executed.
the time is another Timer
private void ExecutarServico()
{
timerImportacao.Enabled = false;
CarregarConfiguracoesServico();
CadastroBusiness biz = new CadastroBusiness();
try
{
if (GeraArquivosExportacao())
{
AlertaBusiness.RegistrarLogEventViewer("FEPWeb - Iniciando processo de Exportação.");
ServicoFepWeb sfw = new ServicoFepWeb();
sfw.UriInput = uriInput; sfw.DirInput = operServico.CaminhoSaida; sfw.UserCred = userCred; sfw.PassCred = passCred;
biz.GerarDocumentoFepWeb(operServico.CaminhoSaida);
sfw.SendFiles();
if (biz.RetornoFepWeb.Count != 0)
{
StringBuilder sb = new StringBuilder();
foreach (string str in biz.RetornoFepWeb.ToArray())
sb.Append(str + Environment.NewLine);
biz.EnviarAlertaFepWebErro("Exportação FEPWeb.", MensagemBusiness.RetornaMensagens("Exportar_FepWeb_Aviso") + Environment.NewLine + sb.ToString(), operServico.DestinatarioMail);
}
AlertaBusiness.RegistrarLogEventViewer("Processo de Exportação FEPWeb, concluido com sucesso.");
}
}
catch (Exception ex)
{
AlertaBusiness.RegistrarLogEventViewer(MensagemBusiness.RetornaMensagens("Exportar_FepWeb_ERR") + Environment.NewLine + ex.Message + Environment.NewLine + (ex.InnerException != null ? ex.InnerException.ToString() : String.Empty), EventLogEntryType.Error);
biz.EnviarAlertaFepWebErro("Exportação FEPWeb.", MensagemBusiness.RetornaMensagens("Exportar_FepWeb_ERR") + Environment.NewLine + ex.Message + Environment.NewLine + (ex.InnerException != null ? ex.InnerException.ToString() : String.Empty), operServico.DestinatarioMail);
}
finally
{
timerImportacao.Enabled = true;
}
}
Did not restart because it was still running? I have a service, with
Topshelf
that does not stop after Exception. I was curious how this service withTimer
, if the service stops, as theTimer
will shoot since it is part of the service?– rubStackOverflow
I treated Exception with Throw new Exception(), returning the failure to the initial method, so I got the error from the first point. In this case, the execution at that time is interrupted, but is not resumed in the new cycle
– Luiz Martinez