FileSystemWatcher не работает при работе в качестве службы Windows в .NET 8C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 FileSystemWatcher не работает при работе в качестве службы Windows в .NET 8

Сообщение Anonymous »

У меня есть приложение, которое хорошо работает как приложение строки cmd, но при запуске в качестве службы FileSystemWatcher перестает работать.
Я проверил, что служба работает доступ к файлам, поскольку они используют те же файлы в другом месте службы.
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;
}
}
Вот как настроены мои FileSystemWatcher:

Код: Выделить всё

    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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Класс wcf в отдельном проекте не активен при работе в качестве службы
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Класс wcf в отдельном проекте не активен при работе в качестве службы
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • 1053 Ошибка службы Windows при использовании рабочей службы .NET Core 3.1
    Anonymous » » в форуме C#
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous
  • Ошибка службы Python: процессу службы не удалось подключиться к контроллеру службы.
    Anonymous » » в форуме Python
    0 Ответы
    142 Просмотры
    Последнее сообщение Anonymous
  • Обновление списка видео после того, как FileSystemWatcher получает новые данные
    Гость » » в форуме C#
    0 Ответы
    43 Просмотры
    Последнее сообщение Гость

Вернуться в «C#»