自承载

此示例演示如何在控制台应用程序中实现自承载服务。此示例基于入门示例。服务配置文件已从 Web.config 重命名为 App.config,并修改为配置一个由主机使用的基址。服务源代码已修改为实现一个静态 Main 函数,该函数创建并打开一个提供已配置的基址的服务主机。服务实现已修改为将每个操作的输出写入控制台。客户端未经修改,只是配置了服务的正确终结点地址。

提示

本主题的末尾介绍了此示例的设置过程和生成说明。

此示例实现一个静态主函数,以便为给定的 CalculatorService 类型创建一个 ServiceHost,如下面的示例代码所示。

// Host the service within this EXE console application.
public static void Main()
{
    // Create a ServiceHost for the CalculatorService type.
    using (ServiceHost serviceHost = 
           new ServiceHost(typeof(CalculatorService)))
    {
        // Open the ServiceHost to create listeners         // and 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.WriteLine();
        Console.ReadLine();
    }
}

当服务承载在 Internet 信息服务 (IIS) 或 Windows 进程激活服务 (WAS) 中时,服务的基址由宿主环境提供。在自承载情况下,您必须亲自指定基址。这是使用 add 元素、baseAddresses 的子级、host 的子级和 service 的子级完成的,如下面的示例配置所示。

<service 
    name="Microsoft.ServiceModel.Samples.CalculatorService"
    behaviorConfiguration="CalculatorServiceBehavior">
  <host>
    <baseAddresses>
      <add baseAddress="https://localhost:8000/ServiceModelSamples/service"/>
    </baseAddresses>
  </host>
  ...
</service>

运行示例时,操作请求和响应将显示在服务和客户端控制台窗口中。在每个控制台窗口中按 Enter 可以关闭服务和客户端。

设置、生成和运行示例

  1. 请确保已经执行了 Windows Communication Foundation 示例的一次性安装过程

  2. 若要生成 C# 或 Visual Basic .NET 版本的解决方案,请按照生成 Windows Communication Foundation 示例中的说明进行操作。

  3. 若要用单机配置或跨计算机配置来运行示例,请按照运行 Windows Communication Foundation 示例中的说明进行操作。

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.