から開始TaskScheduler
する関数を持っています。EmailInactiveUsers
Application_Start()
送信する電子メールにアプリケーションのルートへのリンクが必要です。しかし、アクセスせずにアプリケーションのベース URLを取得するにはどうすればよいHttpContext
でしょうか。
私のバックアップ ソリューションは、この URL を に追加するweb.config
ことですが、このアプリケーションをさまざまな場所に展開しているため、これを動的に行うことができれば便利です。
Application_Start
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);
}
}
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);
}
}