【问题标题】:Run Windows service by installutil and facing permission issue c#通过 installutil 运行 Windows 服务并面临权限问题 c#
【发布时间】:2015-04-22 14:50:43
【问题描述】:

我开发了一个小型 Windows 服务,其中 sql 依赖类来监视表更改。如果发生表更改,则服务调用 Web 服务。该服务创建一个文件夹和文件来保存日志,并服务向用户发送邮件。

我尝试将服务 exe 文件复制到程序文件夹的文件夹中并发出此命令installutil C:\BBA-Reman\PartIndexer\MyService.exe

收到与错误相关的消息,我知道权限存在问题。所以我以 run as admin 身份打开命令提示符,然后我的服务运行良好,还可以创建文件夹和文件来保存日志数据。

所以我现在做了什么。我在我的项目中添加了一个 Manifest.xml 文件,并将该文件与我的项目关联起来。 Manifest.xml 文件内容在这里。

我在清单文件中更改了这个区域,以便以管理员权限运行我的服务

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

我再次编译我的服务并打开命令提示符而不以管理员身份运行并发出相同的命令installutil C:\BBA-Reman\PartIndexer\PartIndexerService.exe 得到与以前相同的权限问题相关的错误消息。

所以请指导我如何通过清单文件以管理员权限运行我的服务。我做错了什么,即使在添加清单文件后我也会出错。寻找建议。谢谢

【问题讨论】:

    标签: c# windows-services


    【解决方案1】:

    我建议在您的 C# 应用程序中使用 Topshelf,它可以简化 Windows 服务的安装过程。

    您可以在此处找到有关它的更多详细信息: http://docs.topshelf-project.com/en/latest/overview/commandline.html

    【讨论】:

    • 我不知道什么是顶级货架。如果我们通过 topshelf 运行我的 exe,那么它会作为 win 服务运行吗?我的服务名称是否会显示在我可以启动和停止服务的服务窗口中。 topshelf 将任何 exe 作为 win 服务运行有什么好处?请分享知识。谢谢
    • 通过 nuget 库安装很容易。简单,很少有班轮从您的控制台应用程序中创建一个 Windows 服务。调试控制台应用程序比调试服务要容易得多。一旦应用程序经过测试并准备好投入生产,Topshelf 可以轻松地将应用程序安装为服务。如果您从未尝试过,那么当您遇到问题时,真的值得尝试。您可以在他们的常见问题页面上找到有关 topshelf 的更多信息:docs.topshelf-project.com/en/latest/overview/faq.html
    猜你喜欢
    • 2011-10-16
    • 2017-12-17
    • 2011-05-17
    • 1970-01-01
    • 2014-11-08
    • 2017-07-28
    • 2010-11-27
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多