0
Reply

windows service problem

Koteswararao Mallisetti

Koteswararao Mallisetti

14 years ago
1.8k
hai,

this is koti i was develop one windows service the mail concept behind is send a email at particular time instance i take one timer and write the code as follows

 ADDSEmailServiceEvents("Service Started at ");---->method to write log file
            TimerCallback timerDelegate =  new TimerCallback(doWork);
             // create timer and attach our method delegate to it
              serviceTimer =  new Timer(timerDelegate, null, 1000, 100);  

suppose i am write the any message in the catch block or in the onStop EVENT then after when we start the service in windows i got one message box the is figured
bellow attachments
  public void doWork(object sender)
{

try
{
Email emailObj = new Email();
string path;//= @"D:";
path = @"E:\EmailWindowsService\XmlDataFiles\";

DataSet dsEmailT = new DataSet();
DataSet dsSheDuleT = new DataSet();
DataSet dsSmtp = new DataSet();
DataSet dsUsers = new DataSet();
dsEmailT.ReadXml(path + "EmailTemplates.xml");
dsSheDuleT.ReadXml(path + "sheduleTemplate.xml");
dsSmtp.ReadXml(path + "SmtpSettings.xml");
int m = 0;
foreach (DataRow dr in dsSheDuleT.Tables[0].Rows)
{

#region SheduleForLoop


if (dr["EmailTemplateName"].ToString() == null || dr["EmailTemplateName"].ToString().Trim() == "0" || dr["EmailTemplateName"].ToString().Trim() == "")
m++;
else
{

if (((Convert.ToDateTime(DateTime.Now.ToString())).CompareTo(Convert.ToDateTime(dr["SheduleTime"].ToString())) != -1))
{
if (dr["Status"].ToString() != "Send" || dr["Status"].ToString().Contains("pending"))
{
DataRow[] emailT = dsEmailT.Tables[0].Select("id=" + dr["EmailTemplateName"].ToString().Trim());
emailObj.UserName = emailT[0]["UserName"].ToString();
emailObj.Password = emailT[0]["Password"].ToString();
emailObj.Port = Convert.ToInt32(dsSmtp.Tables[0].Rows[0]["PortNo"]);
emailObj.HostName = dsSmtp.Tables[0].Rows[0]["Host"].ToString();
emailObj.FromAddress = emailT[0]["FromAddress"].ToString();
emailObj.Subject = emailT[0]["Subject"].ToString();
emailObj.Body = emailT[0]["Body"].ToString();
dsUsers.ReadXml(path + "users.xml");
#region userForLoop
int i = 0;
foreach (DataRow user in dsUsers.Tables[0].Rows)
{
i++;
dsUsers.WriteXml("E:\\userS.xml");
if (user["UserId"].ToString() == null || user["UserId"].ToString().Trim() == "0" || user["UserId"].ToString() == "")
i++;
else
{

if (Convert.ToBoolean(user["isActive"]))
emailObj.ToAddresses.Add(new MailAddress(user["EmailId"].ToString()));
}

}
#endregion
emailObj.sendEmail(true);
dr["Status"] = "Send";
//ADDSEmailServiceEvents("mail Send ");
}
}
}

dsSheDuleT.WriteXml(path + "sheduleTemplate.xml");
}
#endregion


}
catch (Exception ex)
{
//string local_strMsg = "Problem in service at starting stage";
//ADDSEmailServiceEvents("exception: " + ex.Message);

}
}

what is the problem with my webservice