Directory.CreateDirectory проблема с UNC-путем - PullRequest
1 голос
/ 22 февраля 2012

У меня есть служба Windows, работающая под определенной учетной записью. Служба создает папку по какому-либо настроенному пути, а затем регистрирует сообщения в этой папке.

Настроенный путь является UNC-путем, но был сопоставлен. При развертывании службы на тестовом сервере я получаю сообщение об ошибке - "не удалось найти часть пути 'Z:\<some folder>'.

Чтобы было ясно

Server1 - server on which service is insalled and running under `<Domain1>\<User1>` account
Server2 - \\Server2\LogMessages

<Domain1>\<User1> account has full permissions on \\Server2\LogMessages. 
Also \\Server2\LogMessages path has been mapped to "Z:\" on Server1.

Я попытался записать идентификатор потока, под которым выполнялся код, и добавил код в журнал

Thread.CurrentPrincipal.Identity.Name

Идентификационное имя потока вернулось пустым. Я думал, что это должна была быть учетная запись, под которой работала служба Windows (в данном случае «Domain1 \ User1»).

Я запутался и мне нужна помощь, чтобы понять, что происходит. Спасибо.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2012

Как указывал @Mudx, проблема не в UNC-путях, а в том, что подключенные диски привязаны к учетной записи. Отображение сохраняется в кусте реестра вашего пользователя. Альтернатива положению на подключенный диск состоит в том, чтобы ваша служба прочитала файл конфигурации, чтобы определить, где он должен регистрироваться. Это может быть простой файл с одним вкладышем, или вы можете добавить свойство в файл service.exe.config, или создать файл xml, который впоследствии можно будет также использовать для настройки других свойств вашего сервиса в будущем.

0 голосов
/ 22 февраля 2012

Сервис работает под определенным пользователем (Сервисы или Система), а не под конкретным пользователем.Это распространенная ошибка, поскольку кажется, что служба работает под определенным пользователем (тем, кто ее запустил). Z: сопоставлен с определенной учетной записью пользователя, и служба не может его увидеть.Я предлагаю использовать абсолютные пути или связь через файловую систему или Tcp / IP.

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