Irf*_*aza 7 c# windows-services .net-2.0
我使用c#2005创建并启动了Windows服务Service1(使用exe作为MyService.exe).我已经包含了一个方法GetMyRandomNumber(),它返回一个随机的double值.
这里的问题是如何使用这个运行服务,我怎么能调用该方法.
我尝试添加MyService.exe的引用并访问该方法 -
Service1 s = new Service1();
MessageBox.Show(s.GetMyRandomNumber().ToString());
Run Code Online (Sandbox Code Playgroud)
但是发现该方法不是从正在运行的服务实例中调用的,即使我停止服务也会执行语句.
有人可以解释我如何从运行服务实例调用该方法.
感谢您分享宝贵的时间.
Ala*_*lan 15
在您的代码中,您实际上并未调用该服务,而是引用可执行文件并从该程序集调用方法(在运行时,.NET Framework将使用本地程序集来执行代码,而不是正在运行的服务).
要做你想做的事,你有很多选择.
在.NET 2.0中,您将使用.NET Remoting.您可以创建远程处理接口,其他程序集可以使用它来调用跨可执行文件的方法.
在.NET 3.0中,远程处理被WCF取代.您的服务将成为WCF服务,这将使GetRandomNumber()作为其数据协定的一部分公开.应用程序可以使用合同并连接到您的服务以调用该方法.
网上有很多关于.NET Remoting或其替代版Windows Communication Foundation的好教程.
你应该看看Remoting
| 归档时间: |
|
| 查看次数: |
33654 次 |
| 最近记录: |