当我不以管理员身份运行时,是否有一种简单的方法可以在.Net中开发服务?我遇到了几个问题。首先在调试时,你不能只从visual studio中按F5,因为它必须首先安装服务,然后从服务管理员工具运行。问题是没有管理员权限,我无法创建或控制服务。我们使用Windows Server 2008和AD来管理我们的用户。我可以为用户提供一组特定的权限,以便他们可以添加/删除/启动/停止服务吗?如果我们只希望开发人员访问他们自己实际创建的服务呢?此外,一旦服务运行,调试它的最佳方法是什么。假设服务已经启动并且已经运行,Visual Studio可以附加到已经运行的进程,是否有更好的方法可以从服务的入口点开始调试?
答案 0 :(得分:1)
在使用服务时,我倾向于做的一件事是创建一个控制台应用程序来在开发期间运行代码。这意味着您必须将服务作为执行工作的代码的薄层,因此您可以从控制台应用程序调用该代码,但这无论如何都不是一个坏主意。
我知道这并没有完全回答你的问题,但希望可能会有所帮助!
答案 1 :(得分:1)
您的用户需要获得作为服务登录的权限。
使用管理工具,本地安全策略,本地策略,用户权限分配。
将您的用户添加到“作为服务登录”列表中。
您不能将此权限限制为特定服务。
对于调试 - 我使用的一个技巧是在早期逻辑中添加Sleep(20000);
以给调试器附加时间。您必须确保您的服务一直告诉Service Control Maanger它是醒着的(ServiceStatus = SERVICE_START_PENDING),否则它将被假定为死亡并被杀死。
答案 2 :(得分:1)
基比,
这实际上是我遇到的一个问题。解决Visual Studio问题的最简单方法是创建一个可以在服务级别顶部工作的应用程序。这可能是一个简单的控制台应用程序,使调用与服务的方式相同。如果操作正确,这将与服务完全相同,而不是实际上是服务,这将允许您的开发人员正确地进行测试和调试。
您实际上可以让用户无需管理员即可运行服务,现在您是否可以将它们隔离到我不确定的特定服务。