Мое консольное приложение не работает, использовав запрограммированное задание, предназначенное для этого

Я создал консольное приложение посредством визуального studio (c#), чтобы осуществлять поставку электронных почт в отличных расписаниях в день, совсем посредством timer. До сих пор хорошо, testeé и функционируй правильно. То, в чем я нуждаюсь сейчас, состоит в том, чтобы мочь выполнять мое приложение, и что прокрутил изображение в окне постоянно для того, чтобы он смог осуществлять эту поставку электронных почт автоматического способа, для которого я создал задание, запрограммированное в windows. Там - проблема: выполни приложение правильной формы, но в момент осуществления поставки mails он это не делает. Я не думаю, что проблема находится в моем коде, так как, когда я отлаживаю с визуального, оно функционирует хорошо, но когда запрограммированное задание это называет не, но из-за сомнений далее posteo код (иметь в виду, что расписания фиктивные, чтобы отправление почты мочь testear):

public class Program
{
    static System.Timers.Timer timer1 = new System.Timers.Timer(30000);
    static void Main(string[] args)
    {
        timer1.AutoReset = true;

        timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);

        timer1.Start();

        Console.Read();
    }

    private static void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        try
        {
            EnviarMail.Correo mail = new EnviarMail.Correo();

            //Horas de envio
            var horaEnvio = "09:05:00";
            var horaEnvio2 = "09:06:00";
            var partesHoraEnvio = horaEnvio.Split(new char[1] { ':' });
            var partesHoraEnvio2 = horaEnvio2.Split(new char[1] { ':' });

            //Hora actual
            var fechaHoraActual = DateTime.Now;

            //Convierto el string de la hora actual en un integer
            var fechaHoraEnvio = new DateTime(fechaHoraActual.Year, fechaHoraActual.Month, fechaHoraActual.Day,
                       int.Parse(partesHoraEnvio[0]), int.Parse(partesHoraEnvio[1]), int.Parse(partesHoraEnvio[2]));
            var fechaHoraEnvio2 = new DateTime(fechaHoraActual.Year, fechaHoraActual.Month, fechaHoraActual.Day,
                       int.Parse(partesHoraEnvio2[0]), int.Parse(partesHoraEnvio2[1]), int.Parse(partesHoraEnvio2[2]));

            //Declaro variable de tipo timespan
            TimeSpan ts;
            TimeSpan ts2;

            //Comparo: si la hora de envío es mayor a la actual
            if (fechaHoraEnvio > fechaHoraActual)
                //Mi variable de timespan equivale a la resta entre hora de envío y hora actual
                ts = fechaHoraEnvio - fechaHoraActual;
            else
            {
                //Añado a mi hora de envío 1 día
                fechaHoraEnvio = fechaHoraEnvio.AddDays(1);
                //Vuelvo a restar hora de envío y hora actual
                ts = fechaHoraEnvio - fechaHoraActual;
            }
            if (fechaHoraEnvio2 > fechaHoraActual)
                //Mi variable de timespan equivale a la resta entre hora de envío y hora actual
                ts2 = fechaHoraEnvio2 - fechaHoraActual;
            else
            {
                //Añado a mi hora de envío 1 día
                fechaHoraEnvio2 = fechaHoraEnvio2.AddDays(1);
                //Vuelvo a restar hora de envío y hora actual
                ts2 = fechaHoraEnvio2 - fechaHoraActual;
            }

            //Espero el tiempo de mi timespan y ejecuto el envío del correo.
            Task.Delay(ts).ContinueWith((x) => mail.enviarCorreo());
            Task.Delay(ts2).ContinueWith((x) => mail.enviarCorreo());

            timer1.Stop();

        }
        catch (Exception ex)
        {
            //LogController.save(this, ex);
        }
    }
}

Также я хотел бы направить мое прозрачное приложение накануне пользователя, а следовательно я попробовал скрывать консоль, но одинокое заканчивается завершением приложения. Я создал услугу windows в замене, но в момент не устанавливания этого также функционируй. Пожалуйста, если кто-то знает, как делать это, что был прозрачным, он был бы большой помощи.

С другой стороны... точно в последней командной строке я поместил //LogController.save(this, ex); и будь прокомментирован, так как в существо статический метод не берет мне "this", но также я не знаю, как ссылаться на объект, который был бы должен происходить с ним..., в настоящее время позвони в функцию "save" класса "LogController":

public static void save(object obj, Exception ex)
    {
        string filename = string.Format("LOG_{0:yyyy.MM.dd_hh.mm.ss}.txt", DateTime.Now);
        string filePath = @"C:\Users\KGL\source\repos\Servicio\Logs\";
        string path = Path.Combine(filePath, filename);
        string hora = System.DateTime.Now.ToString("HH:mm:ss");

        StreamWriter sw = new StreamWriter(path, true);

        StackTrace stacktrace = new StackTrace();
        sw.WriteLine(obj.GetType().FullName + " " + hora);
        sw.WriteLine(stacktrace.GetFrame(1).GetMethod().Name + " - " + ex.Message);
        sw.WriteLine("");

        sw.Flush();
        sw.Close();

        MailMessage correo = new MailMessage();
        System.Net.Mail.SmtpClient envio = new System.Net.Mail.SmtpClient(); //Verifica si el correo y password ingresados son válidos

        //Limpio campos si ya escribí destinatarios anteriormente
        correo.To.Clear();
        correo.Body = "";
        correo.Subject = "";
        correo.IsBodyHtml = true;

        //Asigno valores
        correo.To.Add(new MailAddress("email@example.com"));
        correo.From = new MailAddress("email@example.com");
        correo.Subject = "Error";
        correo.SubjectEncoding = System.Text.Encoding.UTF8;
        correo.Body = "Mensaje automatico - favor de no responder";

        //Defino parámetros de cliente
        envio.Port = 25;
        envio.EnableSsl = true;
        envio.Host = "xxxxx";
        envio.Credentials = new NetworkCredential("email@example.com", "password");
        envio.Timeout = 10000;

        //Para adjuntar archivo
        System.Net.Mail.Attachment attachment;
        attachment = new System.Net.Mail.Attachment(path);
        correo.Attachments.Add(attachment);

        envio.Send(correo);
    }

Спасибо заранее из-за Вашей помощи.

4
задан 22.10.2019, 16:11
1 ответ

Давно я был должен делать один Windows Service, который посылал email и был программируемым, каждый 30min. Я принял решение сделать это configurable и это что-то похожее на то, что ты пробуешь сделать.

взял свободу приспосабливания простого примера создавая одну aplicaciГіn Консоли с услугой windows, который посылает электронные почты каждое столько время.

Дает click здесь , чтобы загружать складку примера.

объяснил Тебе:

  1. Создавать проект консоли.
  2. Добавил Log4Net: это одна librerГ - в бесплатную, что позволяет нам включать в нашей aplicaciГіn функциональность “logging” формы rГЎpida и простая.

    Log4Net присоединяется посредством Nuget introducir la descripción de la imagen aquí

Para que Log4Net, что я функционировал правильно, - необходим:

Добавлять эту линию в AssemblyInfo.cs introducir la descripción de la imagen aquí

//Log4Net
[assembly: log4net.Config.XmlConfigurator(Watch = false)]

Добавлять эту secciГіn в app.config

 <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
<log4net>
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
      <file value="./logs/ServicioDePrueba.log" />
      <rollingStyle value="Date" />
      <appendToFile value="true" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <datePattern value="yyyyMMdd" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level [%thread] %logger{1} - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="INFO" />
      <appender-ref ref="RollingFile" />
    </root>
  </log4net>

Создавать инстанцию ILog

//log para crear archivo de log y ver si algo esta fallando
        private static readonly ILog Logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

Использовать методы.Error.Info, segГєn было необходимо, чтобы производить log.

Logger.Info("Programa iniciado: " + DateTime.Now);
Logger.Error(ex.Message, ex);
  1. Добавлять Услугу Windows к проекту: introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

Как только была добавлена услуга нужно давать ему право клик в файле услуги, которая находится в браузере решений, и выбирать ее opciГіn ver código.

cГіdigo услуги остался asГ-:

using log4net;
using ServicioDePrueba.Helper;
using ServicioDePrueba.Infos;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.ServiceProcess;

namespace ServicioDePrueba
{
    partial class ServicioDePrueba : ServiceBase
    {
        #region Declaraciones

        //Tomo esta valor del config y le digo cada cuantos minutos se va ejecutar
        private const string TimerMinKey = "Timer.Min";

        //Aqui toma los datos para el envio del email desde web.config
        private const string MailBodyKey = "Mail.Body";

        private const string MailSubjectKey = "Mail.Subject";
        private const string MailAuthUserKey = "Mail.Auth.User";

        //Si esta habilitado el modo pruebas mando correo al email configurado como para pruebas
        private const string SendTestModeKey = "Send.TestMode";

        private const string SendTestEmailsKey = "Send.TestEmails";
        private System.Timers.Timer _timer = null;

        //log para crear archivo de log y ver si algo esta fallando
        private readonly ILog _logger;// = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        #endregion Declaraciones

        public ServicioDePrueba(ILog logger)
        {
            InitializeComponent();
            _logger = logger;
        }

        protected override void OnStart(string[] args)
        {
            _logger.Info("Servicio iniciado.");

            //Si no se configuraron los minutos pongo 5 por default
            var strMin = ConfigurationManager.AppSettings[TimerMinKey] ?? "5";
            _logger.Info("Timer " + strMin);
            int.TryParse(strMin, out int minutos);

            int.TryParse(strMin, out minutos);

            _logger.Info("Set Timer Min " + strMin);
            _timer = new System.Timers.Timer(60 * 1000 * minutos);
            _timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
            _timer.Enabled = true;
            _timer.Start(); // <- important
        }

        private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            _logger.Info("Timer Elapse ");
            _timer.Enabled = false;
            _logger.Info("Timer Enabled = false ");
            //Cada tantos minutos configurados que pasen, se ejecuta el proceso
            ExecuteProcess();
        }

        internal void ExecuteProcess()
        {
            _logger.Info("Procesando Orders ");
            try
            {
                //Esta lista la tengo aqui fija, pero nose si se pueda cambiar y tomarse de uan BD o servicio.
                var listaEmails = new List<String>()
                {
                    "email@empresa.com",
                    "email2@empresa.com;otromeail@empresa.com",//Pueden ser varios separados por ;'
                    "email3@empresa.com",
                    "email3@empresa.com",
                    "email5@empresa.com",
                };

                //Procesar cada email
                foreach (var destinatario in listaEmails)
                {
                    try
                    {
                        MailHelper mailHelper = new MailHelper(_logger);

                        var testMode = (ConfigurationManager.AppSettings[SendTestModeKey] ?? "") == "1";
                        var testEmails = ConfigurationManager.AppSettings[SendTestEmailsKey];

                        var body = ConfigurationManager.AppSettings[MailBodyKey];
                        var subject = ConfigurationManager.AppSettings[MailSubjectKey];
                        var sender = ConfigurationManager.AppSettings[MailAuthUserKey];

                        MailDataInfo mailData = new MailDataInfo();
                        mailData.Body = body;
                        mailData.Subject = subject;
                        var stringEmails = testMode ? testEmails : destinatario;// pueden ser varios emails separados por ;
                        var emails = stringEmails.Split(';');
                        mailData.Emails = new List<string>();
                        int count = 0;
                        foreach (var email in emails)
                        {
                            if (count == 0)
                            {
                                mailData.Recipient = email;
                            }
                            else
                            {
                                mailData.Emails.Add(email);
                            }
                            count++;
                        }
                        //mailData.Recipient = sentRequest.Emails;
                        mailData.Sender = sender;
                        ///Si se quieres agregar algun archivo adjunto
                        //mailData.AttachmentFiles = new List<MailAttachmentFileInfo>();
                        //MailAttachmentFileInfo xmlFile = new MailAttachmentFileInfo
                        //{
                        //    FileName = "estearchivo.pdf",
                        //    FilePath = "c:/algo/estearchivo.pdf"
                        //};
                        //mailData.AttachmentFiles.Add(xmlFile);

                        var result = mailHelper.Send(mailData);
                        if (result.success)
                        {
                            _logger.Info("Email Enviado.");
                            _logger.Info(result.message);
                        }
                        else
                        {
                            _logger.Info("Envio de email fallido.");
                            _logger.Warn(result.message);
                        }
                    }
                    catch (Exception e)
                    {
                        _logger.Info("Error: " + e.Message, e);
                    }
                }

                if (_timer != null)
                {
                    _timer.Enabled = true;
                    _logger.Info("Timer Enabled = true ");
                }
            }
            catch (Exception e)
            {
                _logger.Info("Error: " + e.Message, e);
                if (_timer != null)
                {
                    _timer.Enabled = true;
                    _logger.Info("Timer Enabled = true ");
                }
            }
        }

        protected override void OnStop()
        {
            _logger.Info("Servicio de prueba detenido. ");
        }
    }
}

объяснил Тебе части:

В Заявлениях или переменных у нас есть с одной стороны все keys (стоимость strings), что определяют имя keys в нашем app.config; также - varaible _logger, которые служит для того, чтобы произвести log и Timer, главная цель которого будет состоять в том, чтобы повторять или выполнять процесс segГєn время, запрограммированное в app.config

, строитель , который он получает как parГЎmetro ILog.

mГ©todo OnStart, который, где мы будем инициализировать Timer asignГЎndole период времени времени для каждый ejecuciГіn.

mГ©todo timer_Elapse, который только берется за то, чтобы называть себе выполнять процесс каждый раз, когда они провели минуты, конфигурировавшие в app.config.

И в конце концов ExecuteProcess(), который, где irГЎn все правила дела Услуги, в этом примере funciГіn cГіdigo состоит в том, чтобы посылать ее электронная почта, для этого добавил еще несколько классов и произведите какие-то организации, между другими вещами.

  1. Добавлять key к app.config

      <appSettings>
         <add key="Send.TestMode" value="1" />
         <add key="Send.TestEmails" value="destinatarioPrueba@gmail.com;destinatarioPrueba2@hotmail.com" />
         <add key="Timer.Min" value="3" />
         <add key="Mail.Subject" value="Servicio de correo de pruebas" />
         <add key="Mail.Body" value=" &lt;p&gt;Estimado(a) client(a): &lt;/p&gt; &lt;br&gt;&lt;p&gt;Correo de ejemplo de pruebas.&lt;p&gt;&lt;br&gt;&lt;hr&gt;&lt;br&gt;&lt;b&gt;ATENCIÓN:&lt;/b&gt;  Por favor, no responda a este mensaje, este buzón no es atendido." />
        <add key="Mail.Server" value="smtp.gmail.com" />
        <add key="Mail.Port" value="587" />
        <add key="Mail.Auth.User" value="noResponder@gmail.com" />
        <add key="Mail.Auth.Pass" value="********" />
        <add key="Mail.EnableSSL" value="1" />
      </appSettings>
    
  2. Изменило program.cs и я остаюсь следующего способа:

    using log4net;
    using System;
    using System.ServiceProcess;
    
    namespace ServicioDePrueba
    {
        internal class Program
         {
        //log para crear archivo de log y ver si algo esta fallando
        private static readonly ILog Logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    
        private static void Main(string[] args)
        {
            Logger.Info("Programa iniciado: " + DateTime.Now);
     #if (!DEBUG)
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[]
            {
                new ServicioDePrueba(Logger)
            };
            ServiceBase.Run(ServicesToRun);
     #else
            ServicioDePrueba myServ = new ServicioDePrueba(Logger);
            myServ.ExecuteProcess();
            // here Process is my Service function
            // that will run when my service onstart is call
            // you need to call your own method or function name here instead of Process();
     #endif
            Logger.Info("Programa Finalizado: " + DateTime.Now);
        }
    }
    }
    

Из этой формы только берется за то, чтобы скроллировать Услугу и уже не ведет себя как одна aplicaciГіn консоли.

ЗАМЕЧАЕТ: Услуги не могут распространяться прямо, asГ - что добавил один #if (!DEBUG) для того, чтобы он смог прокручивать изображение в окне в способе Debug, создавая инстанцию услуги, прямо не делая вызова ServiceBase, но это важно в момент произвождения ее versiГіn instalable мы уверяем имения Release, выбранного в выборах Визуального Studio .

  1. Добавлять Installer к услуге, для этого мы открываем услугу и даем право клик Agregar instalador. Это необходимо, чтобы мочь скроллировать команду instalaciГіn Услуг windows.

introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

добавит файл ProjectInstaller.cs, мы даем ему право клик и Ver código.

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
using System.Threading.Tasks;

namespace ServicioDePrueba
{
    [RunInstaller(true)]
    public partial class ProjectInstaller : System.Configuration.Install.Installer
    {
        public ProjectInstaller()
        {
            InitializeComponent();
        }
    }
}

Однажды allГ - мы даем право клик в InitializeComponent() и выбираем идти в definiciГіn, или F12. В этой secciГіn мы можем добавлять данные о нашей Услуге.

            // 
            // serviceInstaller1
            // 
            this.serviceInstaller1.Description = "Este solo es un servicio de prueba que envia emails.";
            this.serviceInstaller1.DisplayName = "ServicioDePrueba";
            this.serviceInstaller1.ServiceName = "ServicioDePrueba";

Эти данные - те, которых мы увидим в Услугах Windows, или в Task Manager

  1. Производить будьте Перечитан. И копировать файлы папка, где serГЎ установленный Услуга, может быть c:\Servicios\Ejemplo

  2. Устанавливать Услугу. Для этого есть несколько форм, может быть с CMD или с Developer Command Prompt, я это сделал со второй opciГіn.

Нужно принимать несколько вещей во внимание; Сначала скроллировать Developer Command Prompt как администратор, и секунда, когда он попросит у нас счет пользователя помещать ./userName или computerName/userName иначе, помечает нам ошибку и использовать локальный счет с contraseГ±a.

introducir la descripción de la imagen aquí

  1. Инициализировать услугу. Однажды установленный уже мы сможем отображать это в task manger или в услугах windows, но как задержанный... asГ - что нужно конфигурировать услугу для того, чтобы он инициализировался automГЎtico, выбирать пользователь, быть инициализировать это.

introducir la descripción de la imagen aquí

Файл LOG serГЎ произведенный automГЎticamente после того, как инициализировали услугу.

ты Это можешь находить в папке Logs/ServicioDePrueba.log и имя будет тем, которого мы определяем в app.config, в secciГіn Log4Net

introducir la descripción de la imagen aquí

2019-11-10 00:57:09,088 INFO [1] Program - Programa iniciado: 10/11/2019 12:57:09 a. m.
2019-11-10 00:57:09,100 INFO [1] Program - Procesando Orders 
2019-11-10 00:57:10,545 INFO [1] Program - Email Enviado.
2019-11-10 00:57:10,546 INFO [1] Program - Email Enviado.
2019-11-10 00:57:11,839 INFO [1] Program - Email Enviado.
2019-11-10 00:57:11,840 INFO [1] Program - Email Enviado.
2019-11-10 00:57:13,036 INFO [1] Program - Email Enviado.
2019-11-10 00:57:13,037 INFO [1] Program - Email Enviado.
2019-11-10 00:57:14,205 INFO [1] Program - Email Enviado.
2019-11-10 00:57:14,205 INFO [1] Program - Email Enviado.
2019-11-10 00:57:15,474 INFO [1] Program - Email Enviado.
2019-11-10 00:57:15,474 INFO [1] Program - Email Enviado.
2019-11-10 00:57:15,475 INFO [1] Program - Programa Finalizado: 10/11/2019 12:57:15 a. m.
2019-11-10 00:58:28,350 INFO [1] Program - Programa iniciado: 10/11/2019 12:58:28 a. m.
2019-11-10 00:58:28,359 INFO [1] Program - Procesando Orders 
2019-11-10 00:58:29,670 INFO [1] Program - Email Enviado.
2019-11-10 00:58:29,670 INFO [1] Program - Email Enviado.
2019-11-10 00:58:30,887 INFO [1] Program - Email Enviado.
2019-11-10 00:58:30,888 INFO [1] Program - Email Enviado.
2019-11-10 00:58:32,054 INFO [1] Program - Email Enviado.
2019-11-10 00:58:32,054 INFO [1] Program - Email Enviado.
2019-11-10 00:58:33,384 INFO [1] Program - Email Enviado.
2019-11-10 00:58:33,385 INFO [1] Program - Email Enviado.
2019-11-10 00:58:34,612 INFO [1] Program - Email Enviado.
2019-11-10 00:58:34,612 INFO [1] Program - Email Enviado.
2019-11-10 00:58:34,612 INFO [1] Program - Programa Finalizado: 10/11/2019 12:58:34 a. m.
2019-11-10 00:59:06,997 INFO [1] Program - Programa iniciado: 10/11/2019 12:59:06 a. m.
2019-11-10 00:59:07,005 INFO [1] Program - Procesando Orders 
2019-11-10 00:59:08,287 INFO [1] Program - Email Enviado.
2019-11-10 00:59:08,287 INFO [1] Program - Email Enviado.
2019-11-10 00:59:09,730 INFO [1] Program - Email Enviado.
2019-11-10 00:59:09,730 INFO [1] Program - Email Enviado.
2019-11-10 00:59:10,906 INFO [1] Program - Email Enviado.
2019-11-10 00:59:10,907 INFO [1] Program - Email Enviado.
2019-11-10 00:59:12,078 INFO [1] Program - Email Enviado.
2019-11-10 00:59:12,079 INFO [1] Program - Email Enviado.
2019-11-10 00:59:13,410 INFO [1] Program - Email Enviado.
2019-11-10 00:59:13,411 INFO [1] Program - Email Enviado.
2019-11-10 00:59:13,411 INFO [1] Program - Programa Finalizado: 10/11/2019 12:59:13 a. m.
2019-11-10 00:59:24,440 INFO [1] Program - Programa iniciado: 10/11/2019 12:59:24 a. m.
2019-11-10 00:59:24,450 INFO [1] Program - Procesando Orders 
2019-11-10 00:59:25,766 INFO [1] Program - Email Enviado.
2019-11-10 00:59:25,767 INFO [1] Program - Email Enviado.
2019-11-10 00:59:26,947 INFO [1] Program - Email Enviado.
2019-11-10 00:59:26,948 INFO [1] Program - Email Enviado.
2019-11-10 00:59:28,127 INFO [1] Program - Email Enviado.
2019-11-10 00:59:28,127 INFO [1] Program - Email Enviado.
2019-11-10 00:59:29,324 INFO [1] Program - Email Enviado.
2019-11-10 00:59:29,324 INFO [1] Program - Email Enviado.
2019-11-10 00:59:30,556 INFO [1] Program - Email Enviado.
2019-11-10 00:59:30,556 INFO [1] Program - Email Enviado.
2019-11-10 00:59:30,556 INFO [1] Program - Programa Finalizado: 10/11/2019 12:59:30 a. m.
2019-11-10 01:00:34,502 INFO [1] Program - Programa iniciado: 10/11/2019 01:00:34 a. m.
2019-11-10 01:00:34,510 INFO [1] Program - Procesando Orders 
2019-11-10 01:00:36,017 INFO [1] Program - Email Enviado.
2019-11-10 01:00:36,017 INFO [1] Program - Email Enviado.
2019-11-10 01:00:37,208 INFO [1] Program - Email Enviado.
2019-11-10 01:00:37,208 INFO [1] Program - Email Enviado.
2019-11-10 01:00:38,409 INFO [1] Program - Email Enviado.
2019-11-10 01:00:38,410 INFO [1] Program - Email Enviado.
2019-11-10 01:00:39,646 INFO [1] Program - Email Enviado.
2019-11-10 01:00:39,646 INFO [1] Program - Email Enviado.
2019-11-10 01:00:40,835 INFO [1] Program - Email Enviado.
2019-11-10 01:00:40,835 INFO [1] Program - Email Enviado.
2019-11-10 01:00:40,836 INFO [1] Program - Programa Finalizado: 10/11/2019 01:00:40 a. m.
2019-11-10 01:04:07,438 INFO [1] Program - Programa iniciado: 10/11/2019 01:04:07 a. m.
2019-11-10 01:04:07,445 INFO [1] Program - Procesando Orders 
2019-11-10 01:04:08,920 INFO [1] Program - Email Enviado.
2019-11-10 01:04:08,920 INFO [1] Program - Email Enviado.
2019-11-10 01:04:10,093 INFO [1] Program - Email Enviado.
2019-11-10 01:04:10,093 INFO [1] Program - Email Enviado.
2019-11-10 01:04:11,338 INFO [1] Program - Email Enviado.
2019-11-10 01:04:11,338 INFO [1] Program - Email Enviado.
2019-11-10 01:04:12,534 INFO [1] Program - Email Enviado.
2019-11-10 01:04:12,534 INFO [1] Program - Email Enviado.
2019-11-10 01:04:13,709 INFO [1] Program - Email Enviado.
2019-11-10 01:04:13,710 INFO [1] Program - Email Enviado.
2019-11-10 01:04:13,710 INFO [1] Program - Programa Finalizado: 10/11/2019 01:04:13 a. m.
2019-11-10 01:07:19,550 INFO [1] Program - Programa iniciado: 10/11/2019 01:07:19 a. m.
2019-11-10 01:07:19,557 INFO [4] Program - Servicio iniciado.
2019-11-10 01:07:19,558 INFO [4] Program - Timer 3
2019-11-10 01:07:19,558 INFO [4] Program - Set Timer Min 3
2019-11-10 01:10:19,560 INFO [5] Program - Timer Elapse 
2019-11-10 01:10:19,560 INFO [5] Program - Timer Enabled = false 
2019-11-10 01:10:19,563 INFO [5] Program - Procesando Orders 
2019-11-10 01:10:24,365 INFO [5] Program - Email Enviado.
2019-11-10 01:10:24,365 INFO [5] Program - Email Enviado.
2019-11-10 01:10:25,601 INFO [5] Program - Email Enviado.
2019-11-10 01:10:25,602 INFO [5] Program - Email Enviado.
2019-11-10 01:10:26,840 INFO [5] Program - Email Enviado.
2019-11-10 01:10:26,840 INFO [5] Program - Email Enviado.
2019-11-10 01:10:29,099 INFO [5] Program - Email Enviado.
2019-11-10 01:10:29,100 INFO [5] Program - Email Enviado.
2019-11-10 01:10:30,286 INFO [5] Program - Email Enviado.
2019-11-10 01:10:30,287 INFO [5] Program - Email Enviado.
2019-11-10 01:10:30,287 INFO [5] Program - Timer Enabled = true 
2019-11-10 01:13:30,298 INFO [8] Program - Timer Elapse 
2019-11-10 01:13:30,298 INFO [8] Program - Timer Enabled = false 
2019-11-10 01:13:30,298 INFO [8] Program - Procesando Orders 
2019-11-10 01:13:31,504 INFO [8] Program - Email Enviado.
2019-11-10 01:13:31,504 INFO [8] Program - Email Enviado.
2019-11-10 01:13:32,701 INFO [8] Program - Email Enviado.
2019-11-10 01:13:32,701 INFO [8] Program - Email Enviado.
2019-11-10 01:13:33,940 INFO [8] Program - Email Enviado.
2019-11-10 01:13:33,941 INFO [8] Program - Email Enviado.
2019-11-10 01:13:35,134 INFO [8] Program - Email Enviado.
2019-11-10 01:13:35,134 INFO [8] Program - Email Enviado.
2019-11-10 01:13:36,310 INFO [8] Program - Email Enviado.
2019-11-10 01:13:36,311 INFO [8] Program - Email Enviado.
2019-11-10 01:13:36,311 INFO [8] Program - Timer Enabled = true 
2019-11-10 01:16:36,324 INFO [9] Program - Timer Elapse 
2019-11-10 01:16:36,325 INFO [9] Program - Timer Enabled = false 
2019-11-10 01:16:36,325 INFO [9] Program - Procesando Orders 
2019-11-10 01:16:37,689 INFO [9] Program - Email Enviado.
2019-11-10 01:16:37,689 INFO [9] Program - Email Enviado.
2019-11-10 01:16:39,939 INFO [9] Program - Email Enviado.
2019-11-10 01:16:39,940 INFO [9] Program - Email Enviado.
2019-11-10 01:16:44,180 INFO [9] Program - Email Enviado.
2019-11-10 01:16:44,181 INFO [9] Program - Email Enviado.
2019-11-10 01:16:46,442 INFO [9] Program - Email Enviado.
2019-11-10 01:16:46,443 INFO [9] Program - Email Enviado.
2019-11-10 01:16:47,647 INFO [9] Program - Email Enviado.
2019-11-10 01:16:47,647 INFO [9] Program - Email Enviado.
2019-11-10 01:16:47,648 INFO [9] Program - Timer Enabled = true 
2019-11-10 01:17:27,052 INFO [10] Program - Servicio de prueba detenido. 
2019-11-10 01:17:27,053 INFO [1] Program - Programa Finalizado: 10/11/2019 01:17:27 a. m.

, Если есть algГєn ошибка verГЎ немного asГ - в файле .log

2019-11-10 00:44:30,750 WARN [1] Program - Error al enviar email.
2019-11-10 00:44:31,198 ERROR [1] Program - El servidor SMTP requiere una conexión segura o el cliente no se autenticó. La respuesta del servidor fue: 5.5.1 Authentication Required. Learn more at
System.Net.Mail.SmtpException: El servidor SMTP requiere una conexión segura o el cliente no se autenticó. La respuesta del servidor fue: 5.5.1 Authentication Required. Learn more at
   en System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
   en System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, MailAddress from, Boolean allowUnicode)
   en System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, Boolean allowUnicode, SmtpFailedRecipientException& exception)
   en System.Net.Mail.SmtpClient.Send(MailMessage message)
   en ServicioDePrueba.Helper.MailHelper.Send(MailDataInfo mailData) en ServicioDePrueba\ServicioDePrueba\Helpers\MailHelper.cs:línea 104
2019-11-10 00:44:31,199 INFO [1] Program - Envio de email fallido.
2019-11-10 00:44:31,199 WARN [1] Program - Error al enviar email.

, Чтобы заставлять функционировать enviГі email я, использовал smtp gmail , из-за default gmail блокируй enviГі почты посредством приложений, если это случай, и если ты стремишься к тому, чтобы использовать gmail, нужно позволять приложения дает клик здесь , чтобы идти она configuraciГіn gmail.

Надеялся смочь помогать тебе с этим ответом, и что он полезен для большего количества членов сообщества. Любое сомнение ты можешь контактировать со мной, Привет.

2
ответ дан 01.12.2019, 15:07