У меня есть WCF
служба, размещенная в IIS
на WindowsServer 2008
. Эта служба должна выполнять запись в общую папку на другом компьютере (Windows XP
). Общая папка имеет права на запись для конкретного пользователя, скажем «X», который присутствует как на компьютерах, т.е. на сервере, где работает служба, так и на компьютере, на котором находится общая папка.
Сервис работает под учетной записью NETWORK SERVICE
. Чтобы служба получила доступ к общей папке, я добавил код для олицетворения пользователя «X» в службе, чтобы он получил разрешение на запись в общую папку.
Поскольку я хочу выдать себя за пользователя "X" только при запуске определенного раздела кода, я использовал пример code .
Даже после олицетворения службе иногда не удается записать в общую папку. Это работает спорадически.
Принимая во внимание, что если я добавлю тег в файл Web.config
, он будет работать отлично.
<identity impersonate="true" userName="accountname" password="password" />
Но вышесказанное нежелательно, поскольку оно олицетворяет конкретного пользователя для всех запросов. Мне нужно выдать себя за конкретного пользователя, только когда я запускаю определенный раздел кода.
Кроме того, код олицетворения работает абсолютно нормально, когда общая папка присутствует на другой WindowsServer 2008
.
Может ли кто-нибудь дать мне идеи о том, что здесь происходит не так.