-
FileExists для файлов, расположенных на расшаренных дисках, возвращает False. Почему так происходит? У пользователя 'system' не хватает каких-то прав? Под обычным админом всё нормально на тех же файлах. Операционка - Win 2003 сервер.
-
проверь, запусти сервис от "обычного админа"...
-
> проверь, запусти сервис от "обычного админа"...
Как? Если просто запустить экзешник - то он не стартует как сервис, но - файлы доступны. Как запустит экзешник как сервис не из-под system?
-
в сервис менеджере, запустить от имени ...
-
вернее "с учетной записью" в "вход в систему"
-
точно, спасибо - попробую
-
и кстати в сервисе еще не помешало бы зависимость от сетевых служб поставить... если проверка идет на старте. ну и если оно вообще там работает, что после пробы выше выяснится.
-
Под администратором - то же самое, FileExists возвращает False. Но - когда я запускаю программу просто из консоли (из Far'а) - то FileExists работает нормально, хотя программа запускается тоже под записью 'Administrator' (смотрю по Task Manager).
-
> и кстати в сервисе еще не помешало бы зависимость от сетевых > служб поставить... если проверка идет на старте
Нет - во время работы.
-
Если это имеет значение - то на сервере поднят домен. Запись админа, под которой я локально вхожу - это скорее всего администратор домена.
-
Предположения тут не катят. Но это должен быть пользователь обладающий достаточными правами, и как минимум право доступа к сети. Я обычно использую NETWORK SERVICES - это как раз запись для подобных дел.
-
То есть - у system может не быть доступа к сети?
-
> Дмитрий Белькевич (24.08.11 21:52) [11] > То есть - у system может не быть доступа к сети?
У него 100% нет доступа по сети и это правильно.
-
Дмитрий Белькевич (24.08.11 17:24) [7]
У тебя есть права на перечисление имен в сетевом каталоге, у сервиса нет. К тому же не озвучено полное имя файла, существование которого ты пытаешься узнать. Фраза "расшаренный диск" может подразумевать несколько толкований, зачем ты заставляешь нас гадать ?
-
> К тому же не озвучено полное имя файла, существование которого > ты пытаешься узнать. Фраза "расшаренный диск" может подразумевать > несколько толкований, зачем ты заставляешь нас гадать ?
Ну вот например: w:\123.txt. Файл существует, расположен на диске 'w', w - это подключенный из сети диск.
-
Но это частный случай. Может быть и так: \\comp1\vol1\123.txt
-
> и кстати в сервисе еще не помешало бы зависимость от сетевых служб поставить...
- для доступа к сетевым ресурсам LanmanWorkstation нужно прописать:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService]
"DependOnService"=hex(7):4c,00,61,00,6e,00,6d,00,61,00,6e,00,57,00,6f,00,72,00,\
6b,00,73,00,74,00,61,00,74,00,69,00,6f,00,6e,00,00,00,00,00
-
> Ну вот например: w:\123.txt. Файл существует, расположен > на диске 'w', w - это подключенный из сети диск.
System-у никто не сказал net use w: а тебе это сказали.
Для того, чтобы видеть файлы в каталогах типа \\server\share сервису лучше всего запускаться от учетной записи, которой даны права на такой каталог.
Собственно я на эти грабли сколько-то лет назад тоже наступал, потому делюсь опытом
-
Спасибо за ответы. Как лучше ситуацию разрешить? А у NETWORK SERVICES будет доступ к w: ? Или лучше под каким-то локальным пользователем стартовать сервис? Или net use делать или еще что-то?
-
> Дмитрий Белькевич (25.08.11 11:09) [18]
> А у NETWORK SERVICES будет доступ к w: ? .....
Ткнуть два раза мышкой не судьба, что бы проверить?
|