1

一个奇怪/愚蠢的问题,但是.. 我创建了一个简单的 WCF 服务,用于侦听来自数据库的数据请求。它在我的机器上作为服务正常运行没问题,但我想知道 - 这个 WCF 服务可以用作普通类吗?说类似

public static void main (String [] args) {
    MyWcfService service = new MyWcfService ();
    /* Code to set-up and start listening for requests... */
}

还是只需要在我的机器上作为服务运行?

4

2 回答 2

2

取决于你想达到什么:

  • 如果使用类的功能,的,你可以实例化它并调用它的成员
  • 如果将其用作真正的 WCF 服务,则不,您需要先托管它。在 IIS 或 Windows 服务等中。
于 2013-01-25T23:45:35.723 回答
0

是的,如果您想要的话,您可以在控制台应用程序中自托管 WCF 服务。您不需要 IIS 或 Windows 服务来托管 WCF 服务。这对于开发和调试非常方便,但可能不是您想要的生产。有关详细示例,请参阅此内容。我已修改示例以在下面的代码中完全配置端点。再说一次,不是你一直想要的东西。

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 会根据需要创建服务类的实例。

于 2013-01-26T05:19:43.827 回答