在应用程序启动

时间:2015-06-02 08:42:34

标签: c# asp.net-mvc scheduled-tasks base-url application-start

我有一个TaskScheduler,其函数EmailInactiveUsers是从Application_Start()开始的。

我需要在我发送的电子邮件中找到指向我的应用程序根目录的链接。但是如何在无法访问HttpContext的情况下获取应用的 基本网址

我的备份解决方案是将此网址添加到web.config,但如果我可以动态执行此操作会很好,因为我们正在将此应用程序部署到很多不同的地方。

的Application_Start

protected void Application_Start()
{
    ...

    TaskScheduler.EmailInactiveUsers();
}

的TaskScheduler

public class TaskScheduler
{
    ...

    public static void EmailInactiveUsers()
    {
        IJobDetail job = JobBuilder.Create<InactiveUsersCheck>().Build();

        ITrigger trigger = TriggerBuilder.Create()
                .StartNow()
                .WithSimpleSchedule(x => x
                    .WithIntervalInHours(24)
                    .RepeatForever())
                .Build();

        scheduler.ScheduleJob(job, trigger);
    }
}

InactiveUsersCheck

public class InactiveUsersCheck : IJob
{
    public void Execute(IJobExecutionContext context)
    {
        ...

        // Get base url here but there's no Request or HttpContext.Current available
        var Url = Request.Url.GetLeftPart(UriPartial.Authority);
    }
}

0 个答案:

没有答案