如何以管理员权限启动Windows服务

时间:2015-06-13 11:40:22

标签: c# .net sql-server windows-services

我有自己的应用服务器,这是与sql服务器通信的windows服务,在某些情况下sql server服务是停止所以我通过这段代码说明

ServiceController sc = new ServiceController("MSSQL$SQLEXPRESS");
sc.Start();
sc.WaitForStatus(ServiceControllerStatus.Running);

但它需要管理员权限才能启动服务如何以管理员身份启动我的窗口服务

2 个答案:

答案 0 :(得分:3)

我只是在app.manifest文件中添加此标记 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 它有效...

答案 1 :(得分:1)

让我们将所有内容分成几步

  1. 添加文件&#34;应用程序清单文件&#34;你的根目录
  2. 选择项目属性
  3. 在应用程序选项卡中,Recources组找到Manifest字段
  4. 粘贴新的清单文件名。可能&#34; app.manifest&#34;
  5. 使用此信息填写文件
  6. 根据您的情况,所有信息可能会略有不同。 More info

    <?xml version="1.0" encoding="utf-8"?>
    <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
          <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
          </requestedPrivileges>
          <applicationRequestMinimum>
            <defaultAssemblyRequest permissionSetReference="Custom" />
            <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
          </applicationRequestMinimum>
        </security>
      </trustInfo>
    </asmv1:assembly>