如何在控制台应用程序中调用Windows服务?

时间:2009-06-19 13:05:17

标签: wcf windows-services console-application

我写了一个WCF服务,我想把它称为网络管道绑定方式。我已经在Windows服务中部署了它。

我在wcf服务中写了这个方法:

Add(2,1)

它应该返回3

我不知道如何在我的客户端控制台应用程序中调用windows中托管的服务。我已经开始服务了。


注意:

我想从Windows服务中调用它。

3 个答案:

答案 0 :(得分:1)

您需要使用ChannelFactory创建代理,然后您可以使用代理执行wcf任务。

http://www.switchonthecode.com/tutorials/wcf-tutorial-basic-interprocess-communication

答案 1 :(得分:0)

你想要这样的东西:

NetNamedPipeBinding binding = new NetNamedPipeBinding();
EndpointAddress address = new EndpointAddress("net.pipe://localhost/Foo");
ChannelFactory<IFoo> factory = 
    new ChannelFactory<IFoo>(binding, address);

IFoo foo = factory.CreateChannel();
int result = foo.Add(2, 1);

答案 2 :(得分:0)

如果IMyContract是您的服务合同,您可以使用ChannelFactory类创建代理来调用您的服务:

var proxy = ChannelFactory<IMyContract>.CreateChannel(new NetMsMqBinding(), new EndpointAddress("net.msmq://..."))
proxy.Add(1, 2);