我创建了一个控制台应用程序,我将它作为一个连续的 Web 作业运行。它不使用 Web 作业 SDK,但会检查 WEBJOBS_SHUTDOWN_FILE 环境变量中指定的文件。
我已打开“始终开启”选项,并且我正在使用 settings.job 文件将共享计划中的作业作为单例运行。
Web 作业不断被 WEBJOBS_SHUTDOWN_FILE 停止,然后再次重新启动。
我一直在寻找 kudu 资源,但我找不到我的网络作业重新启动的原因。
有人知道为什么会这样吗?
这是初始化 FileSystemWatcher 的代码:
private void SetupExitWatcher()
{
var file = Environment.GetEnvironmentVariable("WEBJOBS_SHUTDOWN_FILE");
var dir = Path.GetDirectoryName(file);
var fileSystemWatcher = new FileSystemWatcher(dir);
FileSystemEventHandler changed = (o, e) =>
{
if (e.FullPath.Equals(Path.GetFileName(file), StringComparison.OrdinalIgnoreCase) >= 0)
{
this.Exit();
}
};
fileSystemWatcher.Created += changed;
fileSystemWatcher.NotifyFilter = NotifyFilters.CreationTime | NotifyFilters.FileName | NotifyFilters.LastWrite;
fileSystemWatcher.IncludeSubdirectories = false;
fileSystemWatcher.EnableRaisingEvents = true;
}