Не удается получить доступ к сетевому диску из службы Windows VB.NET - PullRequest
1 голос
/ 17 декабря 2009

У меня есть служба Windows, разработанная в VB.NET. Эта служба Windows выбирает файл каждую ночь в 20:00 из копий файла из моей папки C:\ftpDocs в Y:\FtpDocs.

Y: - это подключенный диск, который \\sourceServer\Output files. Когда я запускаю тот же код из приложения Windows VB.NET вместо службы Windows, он работает абсолютно нормально. Но из сервиса выкидывает доступ отказано в ошибке доступа \\sourceServer\Output.

Кажется, что служба Windows запускается с C:\windows\system32. По этой причине я попытался изменить текущий каталог на C:\ftpService (это папка, в которой находится мое приложение).

Для доступа к подключенному диску я предоставляю ИД пользователя и пароль, которые не являются моим ИД пользователя и паролем Windows. Как вы думаете, по этой причине он не может получить к нему доступ из службы Windows?

Если да, как это работает из приложения Windows? Эта проблема не исчезла в течение последнего месяца.

Ответы [ 2 ]

4 голосов
/ 17 декабря 2009

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

Ваша служба должна будет сопоставить сам общий ресурс, используя какие-то сохраненные учетные данные (если хотите, вы можете жестко их зашифровать, хотя это не очень безопасно и, кроме того, представляет собой бремя обслуживания). Хороший пример того, как это сделать, - здесь - хотя я не использовал этот код, я только что прочитал статью.

2 голосов
/ 17 декабря 2009

Обычно служба Windows работает под идентификатором, учетные данные которого не авторизованы для доступа к файлам в сети. Попробуйте запустить службу Windows под учетной записью домена, которая может получить доступ к сетевым файлам. Убедитесь, что эта учетная запись имеет доступ как к сетевым, так и к локальным папкам / файлам, которые она будет читать и записывать.

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

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