在C#中的Windows服务中进行Winform - 可能吗?

时间:2013-07-30 13:07:59

标签: c# winforms windows-services

我正在编写一个Windows服务来每天处理电子邮件。此服务包括App.Config文件,该文件具有若干参数以使服务相应地工作。

每次,管理员用户都必须使用文本编辑器更改/添加/删除该部分内的对。

我打算包含一个窗体来加载该部分中的所有对,并考虑通过表单进行任何修改。

我想知道的是,是否可以在Windows服务中使用winform并在需要更改配置时打开它?我知道我们可以有一个单独的Windows应用程序并加载Windows服务的App.Config文件。我只是想避免使用单独的应用程序。

如果你做了类似的事情,请分享你的想法!

此致 斯利拉姆

1 个答案:

答案 0 :(得分:0)

如果没别的话,这听起来像是一个安全问题。

Windows服务在不同的上下文和帐户中运行,除非在安装服务时特别允许,否则无法与桌面交互。这当然是不够的,所以你也必须让服务在运行桌面的同一个帐户下运行 - 这本身就是非常糟糕的设计而不是我推荐的。

您还可以让服务可执行文件决定在启动期间要执行的操作,常见的模式是在调试时将其作为控制台应用程序生成以简化开发。但是,您必须停止服务并以交互方式手动启动服务可执行文件以获取UI行为。

无论如何,都可以使用单独的配置工具。