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