2013-05-24 2 views
0

У меня проблема с моими новыми сервисами в WS 2008, мои службы запускаются в моей лаборатории под Windows 7, без проблем, но при внедрении этих сервисов на моем сервере не запускается эта служба, предоставляющая данные для отправки позже для электронной почты, эти данные хранятся в файле xls в папке «share».FileSystemWatcher Службы Windows в Windows Server 2008

namespace WsEmail 
    { 

    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] 
    public partial class WsMail : ServiceBase 
    { 
     FileSystemWatcher fsw = new FileSystemWatcher(); 
     Timer tm = new Timer(); 
     EventLog evLufran = new EventLog(); 

     public WsMail() 
     { 
      // Componentes a Iniciar 
      InitializeComponent(); 
     } 

     void tm_Elapsed(object sender, ElapsedEventArgs e) 
     { 
      //DateTime hr = DateTime.Now; 
      //if (hr.Hour == 8) 
      //{ 
       OpenWithStartInfo(); 
      //} 
     } 

     public void fsw_Created(object sender, FileSystemEventArgs e) 
     { 
      try 
      { 
       Mail(e.FullPath); 
      } 
      catch (Exception ex) 
      { 
       if (EventLog.SourceExists("LufranMail")) 
       { 
        EventLog.CreateEventSource("LufranMail", "Application"); 
        evLufran.WriteEntry(ex.Message, EventLogEntryType.Warning, 234); 
       }     
      }    
     } 



     protected override void OnStart(string[] args) 
     { 
      // Creacion del Monitoreo    
      fsw.Path = @"E:\share\"; 
      fsw.Filter = "*.xls"; 
      fsw.IncludeSubdirectories = false; 
      fsw.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite | NotifyFilters.CreationTime;    
      fsw.EnableRaisingEvents = true; 
      fsw.Created += fsw_Created; 

      // Timer para Ejecutar el OpenWithStarInfo    
      tm.Interval = 1000 * 50; 
      tm.Enabled = true; 
      tm.Elapsed += tm_Elapsed; 

      //evLufran.Source = "LufranMail"; 
      //evLufran.Log = "Application"; 
      //evLufran.EnableRaisingEvents = true; 

     } 

     protected override void OnStop() 
     { 
      fsw.EnableRaisingEvents = false; 
     } 

     void Mail(string eAdjun) 
     { 
      MailMessage objMail; 
      objMail = new MailMessage(); 
      objMail.From = new MailAddress("", "Notificaciones Lufran", System.Text.Encoding.UTF8); //Remitente 
      objMail.To.Add(""); //Email a enviar 
      objMail.CC.Add(""); //Email a enviar copia 
      objMail.Bcc.Add(""); //Email a enviar oculto 
      objMail.Subject = "Clientes con Cotizaciones a 4 semenas (Mercancia por llegar)"; 
      objMail.SubjectEncoding = System.Text.Encoding.UTF8; 
      objMail.Body = "Verifique por favor la informacion del archivo excel y remitala a los clientes que correspondan"; 
      objMail.BodyEncoding = System.Text.Encoding.UTF8; 
      objMail.IsBodyHtml = false; //Formato Html del email 
      objMail.Attachments.Add(new Attachment(eAdjun)); 
      SmtpClient SmtpMail = new SmtpClient(); 
      SmtpMail.Credentials = new System.Net.NetworkCredential("", ""); 
      SmtpMail.Port = 587; //asignamos el numero de puerto 
      SmtpMail.Host = "smtp.gmail.com"; //el nombre del servidor de correo 
      SmtpMail.EnableSsl = true; 
      /*Captura de Errores*/ 
      try 
      { 
       SmtpMail.Send(objMail); 
       SmtpMail.Dispose(); 
       objMail.Dispose(); 
       try 
       { 
        File.Delete(eAdjun); 
       } 
       catch (Exception ex) 
       { 
        if (EventLog.SourceExists("LufranMail")) 
        { 
         EventLog.CreateEventSource("LufranMail", "Application"); 
         evLufran.WriteEntry("Archivo no se puede eliminar: " + ex.Message); 
        } 

       }         
      } 
      catch (Exception ex) 
      { 
       if (!EventLog.SourceExists("LufranMail")) 
       { 
        EventLog.CreateEventSource("LufranMail", "Application"); 
        evLufran.WriteEntry(ex.Message); 
       }     
      } 
     } 

     public void OpenWithStartInfo() 
     { 
      try 
      { 
       ProcessStartInfo startInfo = new ProcessStartInfo(@"E:\Share\xComprasLF.fxp"); 
       startInfo.WindowStyle = ProcessWindowStyle.Minimized; 
       Process.Start(startInfo); 
      } 
      catch (Exception ex) 
      { 
       if (!EventLog.SourceExists("LufranMail")) 
       { 
        EventLog.CreateEventSource("LufranMail", "Application"); 
        evLufran.WriteEntry(ex.Message); 
       }        
      }    
     } 
    } 
} 
+0

И что именно происходит? Любые исключения или сообщения? – Kooki

+0

Ничего не происходит, не отправляйте исключения, никаких действий, служба работает, но не выполняет свою работу. –

+0

Использовал ли вы ваш timer.Start()? Я не могу найти его ... – Kooki

ответ

0

Есть несколько проблем в коде SMTP, первый один является то, что вы не указали отправителя, то второй является то, что вы не указали получателя и, наконец, вы не предоставите свои учетные данные на сервер электронной почты, который вы используете. Как только вы исправите это, он должен работать.

+0

Спасибо за ответ Рафаэлю, но я оставляю эти поля пустым, когда размещаю код для обеспечения безопасности и только цель информации, кстати, я видел ошибку в моем коде только в «objMail.To.Add (« »); // По электронной почте enviar "адрес электронной почты имеет неправильное форматирование, другая проблема заключается в том, что эта служба предоставляет данные из SQL в Excel, мне нужно, чтобы этот процесс выполнялся не в фоновом режиме и вызывал здесь" ProcessStartInfo startInfo = new ProcessStartInfo (@ "E: \ Share \ xComprasLF .fxp ");" Есть идеи? –

+0

Извините, но вы должны хотя бы поместить фиктивные значения в эти поля, учитывая, что есть люди, которые на самом деле ожидают, что их код будет запущен с пустыми свойствами, особенно когда они найдут это в Интернете. – Rafael

+0

Проблема с форматом адреса электронной почты может заключаться в том, что он использует специальный символ, например, знак плюса (+) или что-то в этом роде, проблему с базой данных, я не могу вам помочь. Я не делал разработку FoxPro , но я призываю вас задать новый вопрос. – Rafael

Смежные вопросы