每 12 小时触发一次 Web 服务,C# 一次



我正在创建一个 Web 应用程序,我需要在其中每 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";
            }
        }

这是我的 Web 服务 Web 方法,

在这里,我有今天和明天的日期,它将验证并从存储过程中获取数据,但问题是,

我想定期触发此 Web 服务,比如每天下午 6 点和上午 10 点

我需要在此 Web 服务中执行哪些操作?

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

现在告诉任务调度程序运行这个.cmd文件,并给出调用这个.cmd的时间段,这反过来又调用你的java程序,该程序具有触发邮件的业务逻辑或其他任何东西。(你的Java程序可以只有一个main((函数(,类似于C#中的main((函数

相关内容

  • 没有找到相关文章

最新更新