Я проверил, что служба работает доступ к файлам, поскольку они используют те же файлы в другом месте службы.
My BackgroundService настраивается следующим образом:
Код: Выделить всё
public class Worker : BackgroundService
{
private readonly ILogger _logger;
private FileSystemWatcher _watcher, _watcher2;
public Worker(ILogger logger)
{
_logger = logger;
}
public override async Task StartAsync(CancellationToken cancellationToken)
{
await base.StartAsync(cancellationToken);
}
public override async Task StopAsync(CancellationToken cancellationToken)
{
await base.StopAsync(cancellationToken);
}
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
SetupFileSystemWatchers();
return Task.CompletedTask;
}
}
Код: Выделить всё
private void SetupFileSystemWatchers()
{
try
{
_watcher = new FileSystemWatcher
{
Path = @"\\10.10.1.10\files$\1\2\3\",
IncludeSubdirectories = true,
NotifyFilter = NotifyFilters.DirectoryName | NotifyFilters.FileName
};
_watcher.Created += async (sender, e) =>
{
_logger.LogInformation("Created");
await FileWatcherFileChanged(sender, e);
};
_watcher.EnableRaisingEvents = true;
_watcher2 = new FileSystemWatcher
{
Path = @"\\10.10.1.10\files$\1\2\4\",
IncludeSubdirectories = true,
NotifyFilter = NotifyFilters.DirectoryName | NotifyFilters.FileName
};
_watcher2.Created += async (sender, e) =>
{
_logger.LogInformation("Created");
await FileWatcherFileChanged(sender, e);
};
_watcher2.EnableRaisingEvents = true;
_logger.LogInformation("Watchers set up successfully.");
}
catch (Exception ex)
{
_logger.LogError(ex, "Error setting up file system watchers.");
}
}
private async Task FileWatcherFileChanged(object source, FileSystemEventArgs e)
{
await _manage.RepoChanged(e.FullPath);
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... e-in-net-8