每12小时启动一次Web服务c#

时间:2017-02-13 11:45:56

标签: c# asp.net web-services stored-procedures

我正在创建一个webapp,我需要每12/24小时启动一次Web服务

这是我的存储过程

alter proc TMSautomail
@datefrm datetime,
@dateto datetime
as
begin
select email,UserName from tblUser where
 UserName not in(select UserName from userlogin
  where date between @datefrm and @dateto)
end

我从这里获取电子邮件ID

[WebMethod]
        public void fireautomail()
        {
            string email = "";
            string empname = "";

            DateTime datefrm = DateTime.Today;
            DateTime dateto = DateTime.Today.AddDays(1);

            MailMessage msg = new MailMessage();

            string mailfrom = "testemail";

            cmd = new SqlCommand("TMSautomail");
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection = con;
            con.Open();
            cmd.Parameters.AddWithValue("@datefrm",datefrm);
            cmd.Parameters.AddWithValue("@dateto", dateto);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds);
            for(int i=0; i<ds.Tables[0].Rows.Count;i++)
            {
                empname = ds.Tables[0].Rows[i][1].ToString();
                email = ds.Tables[0].Rows[i][1].ToString();
            }
            if (email != "" && email.Length != 0 && email != "NULL")
            {
                msg.From = new MailAddress(mailfrom);
                string subject = "Login Details";
                msg.Subject = subject.ToString();
                msg.IsBodyHtml = true;
                var password = "testpassword";
                msg.Body = "<b style='color:red'>Dear " + empname + "</b><br /><br />"
                    + "You Forget To Logged In Today<br/>"
                    + " You May Miss Important Task's <br/>"
                + " Login To Be Updated <br/>"
                + "Regards<br/>"
                + "Team DES.";
                SmtpClient sc = new SmtpClient("smtp.gmail.com");
                sc.Port = 587;
                sc.Credentials = new NetworkCredential(mailfrom, password.ToString());
                sc.EnableSsl = true;
                sc.Send(msg);
                string edetails = "";
                edetails = edetails + " " + "success";
            }
        }

这是我的网络服务网络方法,

这里我有今天和明天的日期,它将验证并从storedprocedure获取数据, 但问题是,

我想定期解雇此网络服务, 比如每天下午6点和上午10点

我需要在此网络服务中做些什么?

1 个答案:

答案 0 :(得分:1)

您可以使用Windows任务计划程序定期触发特定任务。转到Windows“开始”类型 - &gt; “任务调度程序”,然后创建一个新任务并使用您希望此作业执行的操作对其进行配置,例如,这是触发JAVA代码的方式: 在某个位置创建一个.cmd文件,内容为“C:\ Program Files \ Java \ jdk1.8.0_25 \ bin \ java.exe”-jar“E:\ YourProgram.jar”

现在告诉任务调度程序运行这个.cmd文件并给出调用此.cmd的时间段,其中inturn调用你的java程序,它具有触发邮件或其他任何东西的业务逻辑。 (你的java程序只能有一个main()函数)类似于c#

中的main