Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 运行Windows服务时拒绝访问_C#_Asp.net Core_.net Core_Asp.net Core 3.1 - Fatal编程技术网

C# 运行Windows服务时拒绝访问

C# 运行Windows服务时拒绝访问,c#,asp.net-core,.net-core,asp.net-core-3.1,C#,Asp.net Core,.net Core,Asp.net Core 3.1,我使用ASP.NETCore3.x和C#创建了一个Windows服务。在构建项目时,我从新的Windows服务模板开始。当我从开发环境或控制台窗口运行它时,它运行良好。当我将其安装为Windows服务并尝试启动该服务时,我得到一个 “错误5:访问被拒绝。”错误 为了消除错误,我尝试了许多我将在下面概述的方法,但似乎没有任何效果,所以我下载了由Microsoft提供的示例应用程序,位于 同样的结果…当我从VisualStudio中运行示例应用程序时,它运行良好,当作为服务运行时,我会收到拒绝访问错

我使用ASP.NETCore3.x和C#创建了一个Windows服务。在构建项目时,我从新的Windows服务模板开始。当我从开发环境或控制台窗口运行它时,它运行良好。当我将其安装为Windows服务并尝试启动该服务时,我得到一个 “错误5:访问被拒绝。”错误

为了消除错误,我尝试了许多我将在下面概述的方法,但似乎没有任何效果,所以我下载了由Microsoft提供的示例应用程序,位于

同样的结果…当我从VisualStudio中运行示例应用程序时,它运行良好,当作为服务运行时,我会收到拒绝访问错误

  • 我在本地机器上运行所有这些,我是该机器的管理员

  • 我最初尝试使用默认的本地系统帐户运行它;获取拒绝访问错误。 我将登录改为我的域帐户,与我用来登录本地机器的帐户相同,本地机器是这台机器上的管理员;获取相同的访问被拒绝错误

  • 我的帐户具有设置为作为服务运行的权限

  • 事件查看器仅显示一条显示“拒绝访问”的消息,不创建其他消息

  • 我相信拒绝访问错误是在C#代码执行之前发生的。让我相信这一点的是,我在程序的最顶端添加了一行。Main
    File.writealText(“C:\\temp\\ws.log”,“$”辅助服务测试@{DateTime.Now}。内容根路径:{AppContext.BaseDirectory}”)。我的帐户可以完全访问临时文件夹。当我从Visual Studio运行应用程序时会创建此文件,但当我将应用程序作为服务运行时不会创建此文件

  • 我读过很多网站,包括这个和这个。运气不好,我在这些网站上尝试的一切仍然会产生拒绝访问错误


我已经没有主意了,希望这里有人能给我答案。谢谢

我找到了解决办法,相信我,我觉得自己真的很愚蠢

当我将其作为服务安装时,我只将路径放在“binPath”中

sc创建WindowsService1 binPath=“C:\temp”

一旦我将可执行文件添加到binPath参数中,一切都正常了

将其更改为
sc create WindowsService1 binPath=“C:\temp\WindowsService.exe”
,然后它就工作了

我知道这是一个Id10t错误,但是微软应该为“sc”命令提供更好的消息。像“找不到binPath参数中指定的文件”这样的消息会非常有用。这样我就可以省下6个小时的工作


感谢大家回顾和回答这个问题。

我找到了解决方案,相信我,我觉得自己真的很愚蠢

当我将其作为服务安装时,我只将路径放在“binPath”中

sc创建WindowsService1 binPath=“C:\temp”

一旦我将可执行文件添加到binPath参数中,一切都正常了

将其更改为
sc create WindowsService1 binPath=“C:\temp\WindowsService.exe”
,然后它就工作了

我知道这是一个Id10t错误,但是微软应该为“sc”命令提供更好的消息。像“找不到binPath参数中指定的文件”这样的消息会非常有用。这样我就可以省下6个小时的工作


感谢大家审阅并回答此问题。

我认为OP创建了一个web项目,并尝试将其作为awindows服务托管进行简单的复制并将其推送到GitHub,以便我们可以进行复制。我认为OP创建了一个web项目,并尝试将其作为awindows服务托管进行简单的复制并将其推送到GitHub,以便我们可以进行复制。