У меня есть служба Windows, написанная на C #.Этот сервис порождает несколько потоков MTA.В каждом из этих потоков создается экземпляр внепроцессного COM-класса.Я настроил службу для работы от имени текущего пользователя (добавьте соответствующий логин в учетные данные).Когда служба запускается, из диспетчера задач появляется, что она работает как мой пользователь.Если служба выполняет проверку локального роумингового каталога пользователя, она возвращает мой каталог пользователя, как и ожидалось.Когда мой COM-класс, который выполняется как вне процесса exe, делает эту проверку, он возвращает путь в Windows \ System32 \ Config \ systemprofile \ AppData \ Roaming.
Может кто-нибудь пролить свет на то, что происходитздесь, и даже более конкретно, как я могу получить сервер вне процесса для работы в качестве пользователя службы.Я проверил в диспетчере задач, и в соответствии с диспетчером задач, исполняемый файл работает как тот же пользователь (в том же сеансе), что и служба.
Не уверен, является ли ОС фактором, но я видел этона Vista 32 (sp2) и Win7 64 (sp1)