Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DirectoryNotFoundException, в Windows service 
:(
    Опции темы
arilou
Дата 8.8.2005, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Привет,

Есть такая проблема. Работает сервис, который в определенное время копирует файл (должен smile ) из одного места в другое. Все работает очень хорошо, пока в качестве target-пути не указывается network drive (для тех, кто не знает, это диск, замапленый на сетевую папку). В таком случае в сервисе происходит DirectoryNotFoundException.

Подозреваю, что для сервисов этих дисков не существует, т.к. мапятся они при логине. Я прав или нет? Может, кто-нить может ссылку кинуть на англоязычный ресурс по этой теме?



--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
-ser-
Дата 8.8.2005, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 1.2.2005

Репутация: 5
Всего: 13



они мапятся для текущего пользователя и хранятся в HKEY_CURRENT_USER но в контексте ASP.NET его не существует. попробуй почитать o security и об impersonating http://msdn.microsoft.com/library/default....personation.asp
т.е. можно попробовать включить impersonate для domain account (по умолчанию false) и дать доступ ему к shared folder.


--------------------
"Тонкая, однако, работа." 
PM MAIL ICQ   Вверх
arilou
Дата 8.8.2005, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Речь идет не о web service, а о Windows service smile


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
-ser-
Дата 8.8.2005, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 1.2.2005

Репутация: 5
Всего: 13



можно попробовать вместо драйва указать
Код

Directory.GetDirectories(@"\\Remote srvr name\mydir");




--------------------
"Тонкая, однако, работа." 
PM MAIL ICQ   Вверх
arilou
Дата 8.8.2005, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(ser @ 8.8.2005, 12:23)
можно попробовать вместо драйва указать

Ну мы тоже умные smile Может, ты знаешь, как определить, является ли диск сетевым в .NET'е ?


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
-ser-
Дата 8.8.2005, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 1.2.2005

Репутация: 5
Всего: 13



ни малейшего понятия. поcмотри через net view


--------------------
"Тонкая, однако, работа." 
PM MAIL ICQ   Вверх
mr.DUDA
Дата 8.8.2005, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232





--------------------
user posted image
PM MAIL WWW   Вверх
arilou
Дата 8.8.2005, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Это тоже не то, спасибо. Кстати, этот код у меня давно уже был smile


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Дрон
Дата 8.8.2005, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 24
Всего: 93



arilou
Сразу скажу, что решения не знаю.

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



--------------------
Да. Именно так.
PM   Вверх
arilou
Дата 8.8.2005, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



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


Гы. Ты не поянял, мне как раз нужен способ определить, является ли диск сетевым, чтобы в таком случае не передавать его в сервис smile


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
mr.DUDA
Дата 8.8.2005, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(arilou @ 8.8.2005, 15:36)
Ты не поянял, мне как раз нужен способ определить, является ли диск сетевым, чтобы в таком случае не передавать его в сервис

Если диск недоступен - значит, либо он отключен, либо убитый, либо сетевой smile


--------------------
user posted image
PM MAIL WWW   Вверх
arilou
Дата 8.8.2005, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Короче, объясняю ситуацию:

1) Есть сервис (service), есть контролирующее Forms приложение (Controller)
2) Controller видит список дисков, включая сетевые
3) Через Controller сервису сообщается, что нужно скопировать файл туда-то (на сетевой диск)
4) Сервис запускает копирование и не может его выполнить, потому что сетевого диска не видно

Вопрос:
Как в Controller определить, что диск сетевой, чтобы исключить его из списка, возвращаемого Directory.GetLogicalDrives



--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Дрон
Дата 8.8.2005, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 24
Всего: 93



arilou

Может это поможет

Код

ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_MappedLogicalDisk");
foreach(ManagementObject manObject in searcher.Get())
   Console.WriteLine(manObject["Name"]);


Нужно только подключить System.Management


--------------------
Да. Именно так.
PM   Вверх
arilou
Дата 8.8.2005, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Дрон
От спасибо! Выручил! +


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.2075 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.