Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows服务如何使用Windows通信基础(WCF)_C#_.net_Asp.net_Wcf - Fatal编程技术网

C# Windows服务如何使用Windows通信基础(WCF)

C# Windows服务如何使用Windows通信基础(WCF),c#,.net,asp.net,wcf,C#,.net,Asp.net,Wcf,当我创建一个Windows服务以从Web应用程序(ASP.NET c#)获取信息,从而在客户端计算机中调度某些任务时 从web应用程序使用WCF。我添加了WCF参考 将窗口服务项目作为服务参考,一切似乎都很好。信息技术 更新了app.config文件,添加了服务参考等。 它不起作用。任何想法都会很有帮助 我的代码如下所示 string result = string.Empty; BasicHttpBinding myBinding = new BasicHttpBinding(); Endp

当我创建一个Windows服务以从Web应用程序(ASP.NET c#)获取信息,从而在客户端计算机中调度某些任务时

从web应用程序使用WCF。我添加了WCF参考 将窗口服务项目作为服务参考,一切似乎都很好。信息技术 更新了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();

}
string result=string.Empty;
BasicHttpBinding myBinding=新的BasicHttpBinding();
EndpointAddress myEndpoint=新的EndpointAddress(“http://test.com/Service.svc/DevicesService");
使用(ChannelFactory myChannelFactory=newchannelfactory(myBinding,myEndpoint))
{
IdeviceService wcfClient1=myChannelFactory.CreateChannel();
结果=wcfClient1.CheckNetworkConnection(IPLocalHost);
如果(!string.IsNullOrEmpty(result)&&result.Equals(IPLocalHost))
{
WriteEntry(“测试连接成功”);
}
其他的
{
WriteEntry(“当前没有可用的实时连接”);
}
((IClientChannel)wcfClient1.Close();
}

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

如果您将上面的代码移动到控制台应用程序中,它能工作吗?如果它没有,你能通过它,让我们知道它失败的地方。当它失败时,您会看到什么异常信息


让我们知道,我们会帮助你的

它不起作用
不是一个非常精确的问题描述,至少不够精确,无法得到任何可行的答案。你能再具体一点吗?你有例外吗?如果是,粘贴确切的消息和堆栈跟踪。当我使用fiddler进行测试时,Windows服务没有调用wcf方法(“CheckNetworkConnection”)从远程服务器获取数据。现在运行Windows服务时没有显示错误。我没有足够的知识调试Windows服务,无法调试Windows服务,看,你检查过事件日志了吗?服务启动了吗?停止?什么是CheckNetworkConnection(IPLocalHost)??