运行没有活动连接的方法

本文关键字:方法 连接 活动 运行 | 更新日期: 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