系统错误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之后,就遇到了这个问题。
唯一修复工作是我'删除'的服务,并再次安装。
事情之后,事情就完美了。