【发布时间】:2012-03-20 20:04:25
【问题描述】:
我正在处理的当前应用程序的设计调用了 WCF 服务,该服务托管在 Windows 服务中,该服务提取数据并将其存储在硬盘驱动器上。它与将与 WCF 服务交互的 Windows 窗体应用程序配对。其中一项要求是最终用户能够通过 Forms 应用重新启动 Windows 服务。
所以,我猜这可以使用 ServiceController 类来完成……但是权限呢?我认为我们不能(或不应该)保证 Windows 应用程序以管理员身份运行,并且该服务作为网络服务运行。
我所看到的唯一合理地似乎涵盖了这种情况的是正在运行另一个 Windows 服务,然后可以将其安装在具有更高权限的帐户下,您可以调用该帐户来重新启动目标服务。
但我不想给项目增加那么多复杂性,尤其是因为它应该在上周处于测试阶段。
那么有没有一种方法可以让表单应用程序获得必要的权限来重新启动它的特定配套服务?
我们可能会提出后续问题,以便服务在服务器上运行,而不是与应用程序在同一台机器上运行。这是否会使允许表单应用程序重新启动服务变得不切实际?如果是这样,我可能会主张削减功能......
哦,注意目标平台是 WinXP 和 Win7 with .NET4。
【问题讨论】:
标签: winforms .net-4.0 permissions windows-services uac