3

我有一个TaskScheduler功能EmailInactiveUsers,我从Application_Start().

我需要在我发送的电子邮件中链接到我的应用程序的根目录。但是如何在没有访问权限的情况下获取应用程序的基本 urlHttpContext

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

应用程序_开始

protected void Application_Start()
{
    ...

    TaskScheduler.EmailInactiveUsers();
}

任务调度器

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);
    }
}

非活动用户检查

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);
    }
}
4

0 回答 0