Служба Windows не может получить доступ к файлу json

В моей службе Windows есть метод, который будет читать файл JSON (который я создал вручную), а затем обрабатывать его. Проблема в том, что служба запускается, но в тот момент, когда ей нужно проверить, существует ли файл (по заданному пути), служба просто застревает в строке «если» (ошибок не возникает, ничего). Я решил протестировать тот же метод в проекте консоли Windows, и он отлично работает (проверяет, существует ли файл и даже получает содержимое json). Ниже следует описанный ранее метод:

//   
 private string ReadJsonFile()
    {
        string jsonResponse = String.Empty;
        try
        {
            string networkPath = ConfigurationManager.AppSettings.Get("networkPath");
            string fileName = ConfigurationManager.AppSettings.Get("jsonFileName");

            new DoLog("Program has executed this line");
            if (File.Exists(networkPath + fileName)) 
// the moment the program hits the above line, it wont continue
            {
                 new DoLog("Program has entered the IF clause");
                 jsonResponse = File.ReadAllText(networkPath + fileName);
            }
        }
        catch (Exception e)
        {
            jsonResponse = string.Empty;
            new DoLog(e.Message);
        }

        return jsonResponse;
    }

Ниже следует мой файл app.config

<add key = "networkPath" value = "C:\TestFlightImporting\"/>
<add key = "jsonFileName" value  = "retest.json"/>

Как указывалось ранее, метод «ReadJsonFile ()» отлично работает в консольном приложении, но в тот момент, когда я запускаю его в службе Windows, он застревает в строке «if (File.Exists ())». Может ли кто-нибудь помочь мне с этой странной проблемой? заранее спасибо

P.S: Единственная задача DoLog - записывать в файл журнала, что происходит в программе.

От имени какого пользователя работает служба Windows? Вероятно, у него нет доступа.

user47589 08.01.2019 18:07

@Amy Я запускал службу как администратор, но должен отметить, что мой компьютер находится в доменной сети. Другими словами, я запускал службу как администратор (щелкните правой кнопкой мыши службу -> свойства -> щелкните вкладку «Вход в систему») или даже с моей учетной записью DOmain. Оба они вызывают одну и ту же проблему .. Я подозреваю, что проблема заключается в том, что мой компьютер находится в доменной сети.

Rainier Gaari 08.01.2019 18:45

Вы уверены, что файл не открыт? Проверьте диспетчер задач.

slaphshot33324 08.01.2019 18:47

@ slaphshot33324: да, проверял несколько раз

Rainier Gaari 08.01.2019 18:55

Попробуйте перезагрузить компьютер, на котором находится файл.

slaphshot33324 08.01.2019 19:01

Когда кажется, что что-то не имеет смысла, начните оспаривать то, что, как нам кажется, мы знаем. Ключи конфигурации в вопросе являются частью конфигурации служб? Зарегистрируйте их из своего кода. Пути в вопросе пути действительный используются как службой, так и вашим локальным сервером?

user47589 08.01.2019 19:22

@Amy: да, с помощью класса ведения журнала я смог проверить правильность ключей и пути. Я решил сделать что-то из коробки, а именно разрешить запуск службы от имени администратора (щелкните правой кнопкой мыши на .exe -> свойства -> вкладка «Совместимость» -> «установите» флажок «запустить эту программу как администратор ".. что сразу решило вопрос

Rainier Gaari 09.01.2019 20:36
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
530
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обновление: на данный момент единственный способ решить эту проблему - запустить права администратора службы. set admin rights for the service via properties

Другие вопросы по теме