Мы работаем над веб-сервисом, который должен запускать сторонний процесс, взаимодействующий с подключенным сетевым диском. Поэтому мы должны подключить этот диск программно из веб-службы.
Я уже обернул WNetAddConnection2 и т. Д. В более хороший класс для другого проекта, поэтому я добавил код.
Наш веб-сервис работает под управлением UltiDev Cassini (вместо IIS), который работает под системной учетной записью. Мы получаем код ошибки для: «указанное имя устройства недействительно» каждый раз. Я также попытался выдать себя за других пользователей в файле web.config, и результаты были те же.
Диск будет нормально отображаться при запуске кода из консольной программы под учетной записью обычного пользователя.
Я также попытался выполнить эквивалентную команду «net use» из C # с теми же результатами, что и для WNetAddConnection.
Кто-нибудь знает, почему служба Windows или системный пользователь не могут подключать сетевые диски?
Кто-нибудь знает обходной путь? Было бы просто сопоставить диск при запуске системы, но как мог бы системный / олицетворенный пользователь получить к нему доступ?
Ссылка для UltiDev Cassini: UltiDev
РЕШЕНИЕ: Я установил для службы UltiDev Cassini вход в систему с правами администратора, и все работает. Олицетворение ASP .Net не должно работать, как запланировано.