WCF работает на XP, но не на Windows 7 - PullRequest
3 голосов
/ 14 июля 2011

У меня есть служба WCF, которая размещена в приложении WinForms.Эта служба WCF вызывает компонент COM, написанный на ATL в Visual Studio 6. Это прекрасно работает в Windows XP.Однако COM-компонент не работает в Windows 7 при вызове GetFileAttributes.Он говорит, что путь не существует, хотя он и существует.Это подключенный сетевой диск.Единственная причина, по которой я могу думать об этом, заключается в том, что приложение WinForms, в котором размещается служба WCF, должно щелкнуть правой кнопкой мыши и запустить от имени администратора.Затем я предполагаю, что компонент COM эффективно получает те же повышенные привилегии, и поэтому сопоставленный диск, который существовал под пользователем, вошедшим в систему на компьютере, больше не существует в том, что касается приложения.

Является ли это допустимым предположениеми если да, каковы мои варианты решения этой проблемы?

1 Ответ

1 голос
/ 14 июля 2011

В Windows 7 (и его эквивалентах) вы теряете подключенные диски при запуске от имени администратора. Это связано с тем, что вы в основном переключаетесь на другой маркер входа в систему, а сетевые диски отображаются только для пользователей без прав администратора.

Есть несколько способов преодолеть это, см. Обсуждения здесь и здесь .

Кроме того, есть параметр реестра (не упомянутый в этих ссылках), который связывает два токена. См. КБ статью о EnableLinkedConnections , , обсуждение об ее использовании.

...