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 Information Services(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 可以关闭服务和客户端。
设置、生成和运行示例
确保已为 Windows Communication Foundation 示例 执行One-Time 安装过程。
若要生成解决方案的 C# 或 Visual Basic .NET 版本,请按照 生成 Windows Communication Foundation 示例中的说明进行操作。
要使用单机配置或跨计算机配置运行示例,请按照运行 Windows Communication Foundation 示例中的说明进行操作。