Windows 7 无法启动不在';程序文件';Windows 7上的文件夹

Windows 7 无法启动不在';程序文件';Windows 7上的文件夹,windows-7,windows-services,Windows 7,Windows Services,我最近已经切换到Windows7作为我的开发机器。我使用的软件的一个组件是Windows服务。我用来调试服务的技巧之一是使服务注册表值指向我的服务调试版本。然后,我启动服务并使用VS.NET连接到流程 但是,当我尝试在Windows 7上执行此操作并尝试启动该服务的“调试”版本时,会收到一条错误消息,告诉我“访问被拒绝”。我认为我的服务调试版本一定有问题。但是为了解决这个问题,我尝试在“ProgramFiles”下创建一个名为“DebugService”的文件夹,将调试生成文件夹的内容复制到此文

我最近已经切换到Windows7作为我的开发机器。我使用的软件的一个组件是Windows服务。我用来调试服务的技巧之一是使服务注册表值指向我的服务调试版本。然后,我启动服务并使用VS.NET连接到流程

但是,当我尝试在Windows 7上执行此操作并尝试启动该服务的“调试”版本时,会收到一条错误消息,告诉我“访问被拒绝”。我认为我的服务调试版本一定有问题。但是为了解决这个问题,我尝试在“ProgramFiles”下创建一个名为“DebugService”的文件夹,将调试生成文件夹的内容复制到此文件夹,并将服务指向此位置。然后我就可以无误地启动服务了

有人在Windows7中遇到过这个限制吗?必须将生成输出复制到“程序文件”中的文件夹会带来不便,而且我的服务在打开此“程序文件”文件夹中的某些文件时也遇到权限问题(已安装的服务版本没有此类问题)


我可以对Windows 7做些什么,告诉它可以启动一个不在“程序文件”下的文件夹中的服务吗?

嘿,我认为程序文件没有什么特别之处。。。但构建位置很可能有一些特殊之处:它属于您,而不属于用户组。假设您不是以自己(或系统)的身份运行服务,这会使它处于一种不舒服的境地,即试图运行一个无法访问其自身代码的程序


我只是在根目录下建立了一个单独的目录树,由用户组访问,然后在那里构建我的东西。但是,您当然可以为已经使用的任何目录分配必要的权限。

您是对的。与Windows 7的区别在于,我的代码文件夹不向“用户”组授予任何权限。一旦我向“用户”组授予权限,服务就会正常启动。非常感谢。有趣的是Windows 7是第一个我没有像你建议的那样在根目录下创建文件夹的操作系统。我把我的代码放在我的文档文件夹里,我认为我是一个好的操作系统公民。。。我使用我的用户目录来处理真正属于个人的事情,但是开发工作往往会越界太多而不方便。FWIW,我相信XP在默认情况下实际上是在系统帐户下运行服务的,因此允许他们访问整个文件系统-您可能可以想象为什么Vista和Win7会改变这一点。