WS 2008 の新しいサービスに問題があります。私のサービスは Windows 7 のラボで実行されます。問題はありませんが、このサービスをサーバーに実装すると、実行されません。このサービスは、後で電子メールで送信するデータを提供します。このデータは私のフォルダー「共有」に保存されているxlsファイル。
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);
}
}
}
}
}