我有一个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);
}
}