我使用 ASP.Net Core 3.x 和 C# 创建了一个 Windows 服务。我在构建项目时使用了新的 Windows 服务模板。当我从我的开发环境或控制台窗口运行它时,它运行良好。当我将它安装为 Windows 服务并尝试启动该服务时,我收到“错误 5:访问被拒绝”。错误。
我尝试了很多东西,我将在下面概述以消除错误,但似乎没有任何效果,所以我下载了 Microsoft 提供的示例应用程序,示例
同样的结果...当我从 Visual Studio 中运行示例应用程序时,它运行良好,当作为服务运行时,我收到拒绝访问错误。
我在我的本地机器上运行所有这些,我是管理员。
我最初尝试使用默认的本地系统帐户运行它;收到拒绝访问错误。我将登录身份更改为我的域帐户,这与我用来登录本地计算机的相同,该本地计算机是这台计算机上的管理员;得到相同的访问被拒绝错误。
我的帐户具有作为服务运行的权限。
事件查看器只显示一条消息“拒绝访问”,没有其他消息被创建。
我相信访问被拒绝错误甚至在 C# 代码执行之前就发生了。让我相信这是我在 Program.Main.... 的最顶部添加了一行
File.WriteAllText("C:\\temp\\ws.log", $"Test of Worker Service @ {DateTime.Now}. Content Root Path: {AppContext.BaseDirectory}");
。我的帐户对临时文件夹具有完全访问权限。当我从 Visual Studio 运行应用程序时会创建此文件,但当我将应用程序作为服务运行时不会创建它。
我的想法已经用完了,希望这里有人可以为我提供答案。谢谢!