служба windows - PullRequest
       27

служба windows

3 голосов
/ 30 июня 2009

Я разработал службу Windows для записи PDF-файла в каталог. У службы нет проблем с записью файлов на локальные диски. Но когда он пытается записать данные на подключенные к сети диски, происходит сбой и он записывает файл в каталог приложения.

Ответы [ 5 ]

5 голосов
/ 30 июня 2009

Вот некоторые примеры, которые я испытал при создании того же сервиса, что и вы (чтение и сохранение PDF на сетевом диске). У меня было 2 диска: первый без необходимости аутентификации и второй, где вы должны были проходить аутентификацию.

Типичные ошибки при подключенных сетевых дисках

  • Путь UNC против буквы диска: Буква диска не работает, вы должны указать свой путь, используя обозначение UNC. (например, \\ 10.17.194.1 \ RemoteDir \)

  • Аутентификация: Если сетевой диск требует от вас аутентификации, я нашел единственный способ создать пользователя для аутентификации на компьютере, на котором запущена служба. Если вам необходимо пройти аутентификацию как «RemoteUser» с «RemotePassword» для доступа к сетевому диску, вы должны создать учетную запись RemoteUser / RemotePassword на сервере и позволить службе работать от имени этого пользователя.

    Если у вас нет прав доступа к каталогу, вы получите исключение, сообщающее, что он не может найти каталог / файл или, скорее, его не существует.

  • Служба не может установить соединение самостоятельно: Кроме того, необходимо обязательно хотя бы один раз получить доступ к сетевому диску из проводника, чтобы вы могли просмотреть его. Моему сервису не удалось установить соединение с сетевым диском самостоятельно, его нужно было установить в проводнике раньше.

Я надеюсь, что любой из этих пунктов поможет вам.

2 голосов
/ 30 июня 2009

Необходимо убедиться, что тип учетной записи, с которой работает служба, может обращаться к сети.

Пользователь «Локальная система», вероятно, не будет иметь доступа к подключенному к сети диску, но сможет записывать на локальный жесткий диск. Вы должны быть в состоянии настроить пользователя, которому запускается служба, на пользователя с разрешениями общего сетевого ресурса.

0 голосов
/ 11 сентября 2009

Я бы проверил следующее:

  1. Ваша программа работает, когда не работает как служба?
  2. У вас точно нет элементов GUI, таких как окна ошибок (возможно, глупый вопрос ;-))?
  3. Вы пишете службу, используя .NET? если да, возможно, есть проблемы с динамическими правами (CAS)

Возможно, у вас возникли проблемы при отладке службы: вы можете подключить к ней отладчик и сообщить нам, какую ошибку вы получаете. Это поможет людям здесь помочь вам.

CAS

0 голосов
/ 30 июня 2009

Я думаю, что по умолчанию служба Windows запускается под учетной записью LocalService, поэтому службы по умолчанию не получают никаких специальных привилегий. Возможно, если вы измените учетную запись службы на учетную запись NetworkService, она будет работать.

0 голосов
/ 30 июня 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...