一个奇怪/愚蠢的问题,但是..我创建了一个简单的WCF服务,用于侦听来自数据库的数据请求。它作为我的机器上的服务正常运行没有问题,但我想知道 - 这个WCF服务可以用作普通类吗?说出类似
的内容public static void main (String [] args) {
MyWcfService service = new MyWcfService ();
/* Code to set-up and start listening for requests... */
}
或者它只是必须在我的机器上作为服务运行?
答案 0 :(得分:2)
取决于你想要达到的目标:
答案 1 :(得分:0)
是的,您可以在控制台应用程序中自行托管WCF服务(如果这是您想要的)。您不需要IIS或Windows服务来托管WCF服务。这对于开发和调试来说非常方便,但可能不是您想要的生产。有关详细示例,请参阅this。我修改了示例以在下面的代码中完全配置端点。再一次,不是你想要的东西。
public static void Main()
{
MyWcfService instance = new MyWcfService();
using (ServiceHost serviceHost = new ServiceHost(instance))
{
var endpoint = serviceHost.AddServiceEndpoint(typeof(IMyWcfService), new NetTcpBinding(), "net.tcp://localhost:8000/MyWcfService");
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready at {0}", endpoint.Address);
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
}
}
请注意,这使用单个实例来为所有调用提供服务,因为通常WCF会根据需要创建服务类的实例。