使用一项 Windows 服务中的本地系统和网络资源

Using Local System and Network resources from one Windows Service

我在 C# 中创建了一个服务,我在其中执行两项任务。

任务 1:提取 Windows 事件日志。

任务 2:将所需的日志(如果存在)发送到驻留在另一个系统上的数据库。

如果我 运行 此服务在本地系统帐户下,它会成功执行任务 1,因为它与系统相关,但不会执行任务 2,因为本地系统帐户无法访问网络。

如果我 运行 NetworkService 帐户下的此服务访问其他计算机上的数据库,它不会执行任务 1,因为 NetworkService 帐户对系统资源的访问权限有限。因此,无法提取 Windows 事件日志。

我知道我的代码是正确的,因为我已经在控制台应用程序中测试了整个代码并且它正确地执行了两个任务。

我需要可以通过服务执行这两项任务的解决方案。

"If I run this Service under LocalSystem Account, it successfully performs Task-1 because its System related, but not Task-2 because LocalSystem Account does not have access to Network."

这不是真的。据我所知,LocalSystem 帐户可以访问系统上的所有内容,包括与网络交互的能力。我可以根据个人经验来谈论这一点,因为我在我从事的项目中已经有近十年的 Windows 服务,并且它一直与网络交互。查看已接受的答案 here 了解更多信息。

当您的代码是来自 Windows 服务的 运行 时,很可能发生异常,但当您来自控制台应用程序时 运行 则不会发生异常。你试过debugging your service了吗?您是否检查了 Windows 事件日志中的错误?