C# 从Windows服务WCF主机调用WCF操作

C# 从Windows服务WCF主机调用WCF操作,c#,.net,wcf,service,C#,.net,Wcf,Service,我是WCF编程新手。 我需要的是: 承载WCF服务的Windows服务。(已完成) 可以从运行的Windows服务调用WCF服务操作(如GetValue())的客户端应用程序(完成) Windows服务启动时,Windows服务需要从WCF服务调用操作Start()。如果没有Windows服务首先调用Start()操作,则(2)中的应用程序无法检索数据。(未完成) 电脑启动后,Windows服务需要启动。然后它应该开始记录一些数据。用户可以随时运行客户端应用程序来检索记录的数据 但是,我无法执行

我是WCF编程新手。 我需要的是:

  • 承载WCF服务的Windows服务。(已完成)
  • 可以从运行的Windows服务调用WCF服务操作(如GetValue())的客户端应用程序(完成)
  • Windows服务启动时,Windows服务需要从WCF服务调用操作Start()。如果没有Windows服务首先调用Start()操作,则(2)中的应用程序无法检索数据。(未完成)
  • 电脑启动后,Windows服务需要启动。然后它应该开始记录一些数据。用户可以随时运行客户端应用程序来检索记录的数据

    但是,我无法执行自动日志部分,因为客户端是调用WCF服务构造函数的客户端。这不能在windows服务的OnStart()方法内完成


    有没有办法从Windows服务的Onstart()方法调用WCF操作?

    就像-如果您没有对其进行其他配置-每次从客户端调用时都会创建WCF服务类的新实例一样,您也可以自己创建该类的新实例并只调用您的方法。从您的服务的角度来看,这只是一个普通的类


    如果你能详细说明一下在
    Start

    中所做的事情,那将大有帮助。我想我不明白。我想如果我创建一个WCF服务实例,两个不同的客户端将访问同一个实例。否。甚至不能保证在执行两个不同的函数调用时,同一个客户端将访问同一个实例。您可以将WCF配置为这样(会话/单例模式),但默认情况下不是这样的。也许我不是为了这个目的而使用WCF。我需要运行不同的客户端应用程序才能从服务访问相同的数据。如果不能保证访问相同的实例,那么WCF只适用于帮助器功能?不适用于活动对象?也许我应该使用TCPListener和TCPClient来实现我的目标?好的,很抱歉我将其配置为单例。它看起来像预期的那样工作,并且在创建服务主机时调用了服务构造函数。如果这解决了我的问题,我会尝试看更多。谢谢