0

我为这个项目苦苦挣扎了很长时间。我正在使用 Windows 服务应用程序。我已经创建了一个工作 Windows 服务应用程序。现在我收到了一个只有授权用户才能启动服务的请求。

这是我尝试过的。一世。从 app.config 文件中读取连接字符串

<add name ="ConnectionString" connectionString="Data Source = Server_name; Initial Catalog = DB_DEV; Integrated Security = True" providerName="System.Data.SqlClient"/>

ii. 将连接字符串传递给 SqlConnection

SqlConnection myConnection = new SqlConnection(myConnectionString) //gives me error here

iii. 并尝试以登录 - 此用户身份启动服务。

这是这样做的方式还是任何其他方式?请指导我。谢谢。

注意-它在 VS2010 中。

4

1 回答 1

1

Windows 服务作为单个用户运行,通过服务控制面板进行配置,就像您正在做的那样。目前尚不清楚数据库连接是如何关联的,但您可以通过多种方法指定哪些用户可以启动和停止服务。

命令行sc工具

使用sc sdset <Service name> <SDDL string>可以配置服务的权限,允许您控制谁可以启动/停止服务,但是这需要使用相当简洁且没有特别详细记录的 SDDL 字符串格式。

使用subinacl

Microsoft 提供了一个名为的工具SubInACL,可用于配置许多与权限相关的设置。

您可以使用此工具设置服务启动/停止权限,如下所示:

subinacl.exe /service <your service name> /Grant=<user name>=TO

(“ TO”表示要授予用户启动服务(T)和停止服务(O)权限,其他权限值可以通过 确定subinacl /help /full)。

于 2012-11-05T16:26:09.793 回答