如何在 Windows 服务上调用自定义方法:
public class TestService:ServiceBase
{
public TestService()
{
// constructor
}
protected override void OnStart(string[] args)
{
// do some work here
}
protected override void OnStop()
{
// do some work here
}
public void TestMethod(int arg)
{
// do some work here
}
}
我知道服务的名称是“TestService”,所以我可以执行以下操作:
ServiceController sc = new ServiceController("TestService");
但是如果我执行以下操作,则不起作用
sc.TestMethod(5); // cannot do this
我如何访问服务上的方法?我正在使用 C#
谢谢。
最佳答案
您可以通过实现 ServiceBase.OnCustomCommand
处理 Windows 服务的自定义命令,并通过调用 ServiceController.ExecuteCommand
发送它们。
但是,这种“命令”只是128到256之间的命令标识符,没有参数或返回值。
在大多数情况下,这是不够的,您必须按照其他人的建议在 Windows 服务中托管 WCF 服务。
关于.net - 在 Windows 服务上调用自定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3374849/