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