WCF适用于XP,但不适用于Windows 7

WCF适用于XP,但不适用于Windows 7,wcf,windows-7,Wcf,Windows 7,我有一个托管在WinForms应用程序中的WCF服务。此WCF服务调用Visual Studio 6上用ATL编写的COM组件。这在Windows XP上运行得很好。但是,COM组件在Windows 7上调用GetFileAttributes时失败。它说即使路径存在,它也不存在。它是一个映射网络驱动器。我能想到的唯一原因是,承载WCF服务的WinForms应用程序必须右键单击并以管理员身份运行。然后,我假设COM组件有效地获得相同的提升权限,因此,就应用程序而言,登录到机器的用户下存在的映射驱动

我有一个托管在WinForms应用程序中的WCF服务。此WCF服务调用Visual Studio 6上用ATL编写的COM组件。这在Windows XP上运行得很好。但是,COM组件在Windows 7上调用GetFileAttributes时失败。它说即使路径存在,它也不存在。它是一个映射网络驱动器。我能想到的唯一原因是,承载WCF服务的WinForms应用程序必须右键单击并以管理员身份运行。然后,我假设COM组件有效地获得相同的提升权限,因此,就应用程序而言,登录到机器的用户下存在的映射驱动器不再存在

这是一个有效的假设吗?如果是的话,我的解决方法是什么?

在Windows 7(及同等版本)上,当您以管理员身份运行时,您会丢失映射驱动器。这是因为您基本上切换到另一个登录令牌,并且网络驱动器只映射到非管理员的

有几种方法可以克服这个问题,请参阅讨论和


此外,还有一个注册表设置(这些链接中没有提到)链接这两个令牌。请参阅,关于使用它。

非常感谢您提供的信息。这正是我所怀疑的。这些解决方案不是很好,我怀疑它们在我们的场景中是否真的可用。我不打算讨论的最后一个讨论仅仅是因为警告它可能会使您的系统不安全。但是非常感谢这些链接。@Jonnster,请注意,尽管
启用链接连接
被认为是不安全的,但我认为这种推理是非常薄弱的。如果没有本地驱动器,您也会遇到同样的问题,而且没有人关心这一点。无论如何,如果这回答了你的问题,请随意接受。如果不是,我建议你改变问题的标签——这更多的是关于安全而不是关于WCF。