如何通过Windows服务使用Windows Communication Foundation(WCF)

时间:2010-07-28 09:31:04

标签: c# .net asp.net wcf

当我创建 Windows服务以从 Web应用程序(ASP.NET c#)获取信息以便在客户端计算机中安排某些任务时。

从Web应用程序中使用WCF。我添加了WCF参考 以Window Service项目作为服务参考,一切似乎都很好。它 更新了app.config文件,添加了服务引用等。 它不起作用。任何想法都会非常有用。

我的代码如下所示

string result = string.Empty;

BasicHttpBinding myBinding = new BasicHttpBinding();
EndpointAddress myEndpoint = new EndpointAddress("http://test.com/Service.svc/DevicesService");

using (ChannelFactory<IDevicesService> myChannelFactory = new ChannelFactory<IDevicesService>(myBinding, myEndpoint))
{

    IDevicesService wcfClient1 = myChannelFactory.CreateChannel();
    result = wcfClient1.CheckNetworkConnection(IPLocalHost);

    if (!string.IsNullOrEmpty(result) && result.Equals(IPLocalHost))
    {
        EventLog.WriteEntry("Test connection succeeded");

    }
    else
    {
        EventLog.WriteEntry("No live connection currently available");

    }

    ((IClientChannel)wcfClient1).Close();

}

1 个答案:

答案 0 :(得分:4)

在构建Windows服务时,我发现构建一个执行与服务相同工作的控制台应用程序会更容易。我将实际工作代码(例如上面的代码片段)抽象为一个单独的程序集,然后从我的服务的start方法或控制台的main方法中调用它。

如果您将上面的代码移到控制台应用程序中,它是否有效?如果没有,您可以单步执行它并让我们知道它失败的地方。当它失败时,你会看到什么异常信息?

告诉我们,我们会帮助您!