c#应用程序将数据传递给windows服务
本文关键字:windows 服务 应用程序 数据 | 更新日期: 2023-09-27 18:03:38
我写了一个windows服务,它处理每天从服务器更新文件。
我也有一个简单的c#应用程序,它有以下选项:
安装/卸载服务启动/停止服务
和2个带有登录按钮的文本框。
我的想法是,在登录按钮上单击,如果服务正在运行,然后停止它,在OnStart方法中传递登录信息,启动它并让服务工作(重新建立到服务器的连接等)。
我的问题是,是否有一种简单的方法通过它的args[]从文本框传递登录信息到OnStart方法,用一个按钮点击?我搜索了解决方案,但他们都建议从带参数的命令行运行服务,我需要它完全从这个应用程序操作。
我也找到了一篇关于命名管道的文章,但是我很难理解它。此外,服务不需要传递任何其他参数,只需要从文本框中传递这两个字符串。
编辑:
ServiceController sc = new ServiceController("ServiceName", Environment.MachineName);
string[] args = new string[2];
args[0] = txtBox1.Text;
args[1] = txtBox2.Text;
sc.Start(args);
有效果吗?
不能使用string[0]等,但可以使用:
ServiceController sc = new ServiceController("ServiceName", Environment.MachineName);
string[] args = new string[2];
args[0] = txtBox1.Text;
args[1] = txtBox2.Text;
sc.Start(args);
您可能需要管理员权限来启动此服务。
我不知道这个项目的目标,但我也建议检查一下服务属性(运行服务)。MSC(命令提示符)。如果查看属性,可以使用Start parameters字段传递参数。此外,您还可以使用Log On选项卡在任何您想要的凭据下运行该服务,以防这些可能适合您的需要。