系统错误5访问在启动.NET服务时被拒绝

当我尝试启动在Visual Studio中创build的服务时,我收到以下错误:

System error 5 has occurred. Access is denied. 

我用提升的权限运行命令行,所以没有这个问题。 有什么地方可以查看发生了什么错误。

为了让它工作,我需要为我的服务项目添加权限到输出bin \ debug文件夹。

本地服务帐户没有权限输出.exe文件,这就是错误发生的原因。

有同样的问题。

通过在“本地系统帐户”下运行服务来修复

在这里输入图像说明

就我而言,解决scheme就是这么简单:以pipe理员身份运行命令提示符。

我看你已经解决了这个问题。 但实际上,通常不应该通过项目的bin文件夹运行服务 – 文件应放置在某个项目和configuration文件无关的位置(例如,在程序文件下)。 为了进行debugging(当它位于bin文件夹中),您可以检测它是否是Main()一个服务,如果是以交互方式运行,则直接运行服务代码,而不是通常的服务启动设置。

您可以通过添加命令行参数来检测,也可以尝试检查Environment.UserInteractive

本地服务帐户似乎没有特权来控制服务。 因此,在服务的LogOn属性中,将帐户types更改为本地系统,并允许服务与桌面进行交互。

另外,请确保以pipe理员身份使用instalutil安装服务。

最后,如果要使用“net start [service name]”命令从命令提示符运行服务,则必须以pipe理员身份运行命令提示符。

我有同样的问题,因为我的项目和它的源代码是在NTFS的encryption文件系统( EFS )启用的文件夹。 这是由编译的程序集encryption而造成的,运行我的服务的用户没有权限解密它们。 删除EFS是这个简单的解决scheme。 它可以通过命令行使用Windows工具CIPHER.EXE完成。

当我将服务从vs05迁移到vs2010,同时从framework 2.0迁移到framework 4.0时,我遇到了同样的问题。 我得到了访问被拒绝。 一旦改回到框架2.0它再次工作。 ?%¤#%&%&问题是服务的初始化string不正确(?!)。 string预计报价在开始和结束!

之前….path+服务名称“”/参数= 1“这与框架2.0一起工作

经过….“path+服务名称”“/参数= 1”

访问被拒绝与问题无关。 为什么不“找不到path”或“缺less参数”

在没有提示pipe理员帐户的情况下,具有pipe理员权限的用户帐户将提示“您确定吗? 我有net stop netprofm这个问题。

要删除提示,请执行此操作。

控制面板,用户帐户,更改用户帐户控制设置,从不通知

这似乎为pipe理员权限的用户帐户提供了与pipe理员帐户相同的行为。

从具有最高权限的任务计划程序运行它,它将工作。

在运行'sc config'来更改服务的binPath之后,就遇到了这个问题。

唯一修复工作是我'删除'的服务,并再次安装。

事情之后,事情就完美了。