从另一个应用程序(C#)启动WCF服务应用程序

从另一个应用程序(C#)启动WCF服务应用程序,c#,wcf,C#,Wcf,我有一个WCF服务应用程序和一个Windows窗体应用程序。我想从WCF中获取一些数据,但它只能从IDE中自动启动 我的问题很简单:如何从Windows窗体应用程序启动WCF服务应用程序 UPD:这两个应用程序具有不同的位,因此不能在同一个进程中承载。您可以使用类 像这样的 public static void Main() { using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService))) {

我有一个WCF服务应用程序和一个Windows窗体应用程序。我想从WCF中获取一些数据,但它只能从IDE中自动启动

我的问题很简单:如何从Windows窗体应用程序启动WCF服务应用程序

UPD:这两个应用程序具有不同的位,因此不能在同一个进程中承载。您可以使用类
像这样的

public static void Main()
{
  using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService)))
  {
    try
    {
      // Open the ServiceHost to start listening for messages.
      serviceHost.Open();

        // The service can now be accessed.
      Console.WriteLine("The service is ready.");
      Console.WriteLine("Press <ENTER> to terminate service.");
      Console.ReadLine();

      // Close the ServiceHost.
      serviceHost.Close();
    }
    catch (TimeoutException timeProblem)
    {
      Console.WriteLine(timeProblem.Message);
      Console.ReadLine();
    }
    catch (CommunicationException commProblem)
    {
      Console.WriteLine(commProblem.Message);
      Console.ReadLine();
    }
  }
}
publicstaticvoidmain()
{
使用(ServiceHost ServiceHost=new ServiceHost(typeof(CalculatorService)))
{
尝试
{
//打开ServiceHost以开始侦听消息。
Open();
//现在可以访问该服务。
WriteLine(“服务准备就绪”);
控制台。WriteLine(“按以终止服务”);
Console.ReadLine();
//关闭ServiceHost。
serviceHost.Close();
}
捕获(TimeoutException timeProblem)
{
Console.WriteLine(timeProblem.Message);
Console.ReadLine();
}
捕获(通信异常通信问题)
{
Console.WriteLine(commProblem.Message);
Console.ReadLine();
}
}
}
但是,您可以轻松地将其适应winforms,或者如果您愿意,也可以

是否安装了该服务?如果是这样,它的名字是什么?看看我更新的答案如果我从winforms应用程序调用它,服务将在同一个进程中托管,对吗?并且没有办法避免它?WCF服务和winforms应用程序具有不同的位,因此它不会以这种方式运行。如果需要,可以使用windows服务托管服务