从另一个应用程序 (C#) 启动 WCF 服务应用程序
Start WCF service application from another application (C#)
我有一个 WCF 服务应用程序和一个 Windows 表单应用程序。我想从 WCF 获取一些数据,但它仅从 IDE 自动启动。
我的问题很简单:如何从 Windows 表单应用程序启动 WCF 服务应用程序?
UPD:这两个应用程序的位数不同,因此不能托管在同一进程中。
你可以使用 ServiceHost class
像这样
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();
}
}
}
但是你可以很容易地使它适应 winforms 或者如果你愿意的话
Host a WCF Service in a Managed Windows Service
我有一个 WCF 服务应用程序和一个 Windows 表单应用程序。我想从 WCF 获取一些数据,但它仅从 IDE 自动启动。
我的问题很简单:如何从 Windows 表单应用程序启动 WCF 服务应用程序?
UPD:这两个应用程序的位数不同,因此不能托管在同一进程中。
你可以使用 ServiceHost class
像这样
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();
}
}
}
但是你可以很容易地使它适应 winforms 或者如果你愿意的话 Host a WCF Service in a Managed Windows Service