运行没有活动连接的方法
本文关键字:方法 连接 活动 运行 | 更新日期: 2023-09-27 18:01:16
我想为我的网站创建一个过期系统,用户支付一定的时间,然后他们的帐户到期。我需要的是让它们过期的方法。我想有一个方法,每天运行一次,并禁用任何用户是过期日期,但我不知道如何实现这一点,因为所有我所做的到目前为止依赖于一个人连接。此代码应该独立于访问站点的人。
编辑:谢谢你的建议。
我想提一下,我不能在SQL服务器上完成所有的任务。我还需要移动和修改文件。
像这样:
public void checkExpire()
{
// much more code to check the expiration goes here
if (DateTime.Now == expiration)
{
MembershipUser user = Membership.GetUser();
user.IsApproved = false;
Membership.UpdateUser(user);
File.Move(Request.PhysicalApplicationPath + "logs''" + user.UserName + ".xml", Request.PhysicalApplicationPath + "logs''disabled''" + user.UserName + ".xml");
File.Move(Request.PhysicalApplicationPath + "reps''" + user.UserName + ".xml", Request.PhysicalApplicationPath + "reps''disabled''" + user.UserName + ".xml");
email mail = new email("", true);
mail.sendMail(user.UserName, "Dear user, 'n'nYour account has been disabled. None of your data has been lost.'nIf you believe this was a mistake please contact the administrator", "Account Disabled");
Response.Redirect("/Restricted/Members.aspx");
}
}
我正在看Quartz.net,它允许我这样做吗?
解决:
感谢Chris Marisic,他推荐了Quartz.net。它允许我在任何我想要的时间间隔开始一个自定义事件。对于asp.net,我创建了一个按钮,只有管理员可以看到,这将启动事件。石英网站上的教程#3主要是我使用的
这个问题围绕着基本的任务调度展开,这是一个不容易实现的任务。
我建议你看看Quartz。. NET或Sql Server作业代理来实现类似于@Nicklamont的建议的系统。
您可以在DB中为此创建一个表,其中包含用户名、活动、过期日期列。在对用户进行身份验证的同时,检查他们的帐户是否仍然在这个表中处于活动状态。
你说的方法是每天跑一次。检查当天到期日期的所有帐户,并将active字段设置为false。
希望能给大家一些启发,
在数据库中创建SQL作业。每天晚上运行它。
你可以选择、更新或删除你想要的所有坏用户。它是独立于c#代码,它是相当快的,因为它将运行在SQL服务器。
如何:创建Transact-SQL作业步骤(SQL Server Management Studio)
编写控制台应用程序来执行检查。如果您可以访问服务器的计划任务,可以将其添加到您喜欢的运行频率。如果你不知道如何创建控制台应用程序,这里有一个MSDN教程:
http://msdn.microsoft.com/en-us/library/0wc2kk78%28v=vs.90%29.aspx