自承载
SelfHost 示例演示如何在控制台应用程序中实现自承载服务。 此示例基于入门指南。 服务配置文件已从 Web.config 重命名为 App.config,并修改为配置一个由主机使用的基址。 服务源代码已修改为实现一个静态 Main
函数,该函数创建并打开一个提供已配置的基址的服务主机。 服务实现已修改为将每个操作的输出写入控制台。 客户端未经修改,只是配置了服务的正确终结点地址。
备注
本主题的最后介绍了此示例的设置过程和生成说明。
此示例实现一个静态主函数,以便为给定的 ServiceHost 类型创建一个 CalculatorService
,如下面的示例代码所示。
// 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="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
...
</service>
运行示例时,操作请求和响应将显示在服务和客户端控制台窗口中。 在每个控制台窗口中按 Enter 可以关闭服务和客户端。
设置、生成和运行示例
若要生成 C# 或 Visual Basic .NET 版本的解决方案,请按照 Building the Windows Communication Foundation Samples中的说明进行操作。
要使用单机配置或跨计算机配置运行示例,请按照运行 Windows Communication Foundation 示例中的说明进行操作。