参考网址:https://docs.microsoft.com/zh-cn/dotnet/api/system.servicemodel.servicehost?view=netframework-4.8
定义
提供服务的主机。
public class ServiceHost : System.ServiceModel.ServiceHostBase
- 继承
- 派生
示例
// Host the service within this EXE console application.
public static void Main()
{
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService)))
{
try
{
// Open the ServiceHost to 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.ReadLine();
// Close the ServiceHost.
serviceHost.Close();
}
catch (TimeoutException timeProblem)
{
Console.WriteLine(timeProblem.Message);
Console.ReadLine();
}
catch (CommunicationException commProblem)
{
Console.WriteLine(commProblem.Message);
Console.ReadLine();
}
}
}
注解
实现 Windows Communication Foundation (WCF) 服务模型编程模型所使用的主机。
使用 ServiceHost 类来配置和公开服务以供客户端应用程序使用,但不使用 Internet Information Services (IIS) 或 Windows 激活服务 () 公开服务。 IIS 和 WAS 均代表您与 ServiceHost 对象交互。
若要公开服务以供调用方使用,WCF 需要一个完整的服务说明 (ServiceDescription 类) 表示。 ServiceHost类 ServiceDescription 从服务类型和配置信息创建,然后使用该说明为 ChannelDispatcher 说明中的每个终结点创建对象。
使用 ServiceHost 对象加载服务、配置终结点、应用安全设置,并启动侦听器来处理传入的请求。
构造函数
ServiceHost() |
初始化 ServiceHost 类的新实例。 |
ServiceHost(Object, Uri[]) |
使用服务的实例及其指定的基址初始化 ServiceHost 类的新实例。 |
ServiceHost(Type, Uri[]) |
使用服务的类型及其指定的基址初始化 ServiceHost 类的新实例。 |
属性
Authentication |
获取服务身份验证行为。 (继承自 ServiceHostBase) |
Authorization |
获取所承载服务的授权行为。 (继承自 ServiceHostBase) |
BaseAddresses |
获取所承载服务使用的基址。 (继承自 ServiceHostBase) |
ChannelDispatchers |
获取服务主机所使用的通道调度程序的集合。 (继承自 ServiceHostBase) |
CloseTimeout |
获取或设置允许服务主机关闭的时间间隔。 (继承自 ServiceHostBase) |
Credentials |
获取所承载服务的凭据。 (继承自 ServiceHostBase) |
DefaultCloseTimeout |
获取允许服务主机关闭的默认时间间隔。 (继承自 ServiceHostBase) |
DefaultOpenTimeout |
获取允许服务主机打开的默认时间间隔。 (继承自 ServiceHostBase) |
Description |
获取所承载服务的说明。 (继承自 ServiceHostBase) |
Extensions |
获取当前指定的服务主机的扩展。 (继承自 ServiceHostBase) |
ImplementedContracts |
检索由所承载服务实现的协定。 (继承自 ServiceHostBase) |
IsDisposed |
获取一个值,该值指示通信对象是否已被释放。 (继承自 CommunicationObject) |
ManualFlowControlLimit |
获取或设置由所承载服务接收的消息的流控制限制。 (继承自 ServiceHostBase) |
OpenTimeout |
获取或设置允许服务主机打开的时间间隔。 (继承自 ServiceHostBase) |
SingletonInstance |
获取承载服务的单一实例。 |
State |
获取指示通信对象当前状态的值。 (继承自 CommunicationObject) |
ThisLock |
获取在状态转换过程中保护类实例的相互排斥锁。 (继承自 CommunicationObject) |
方法
事件
Closed |
当通信对象转换到已关闭状态时发生。 (继承自 CommunicationObject) |
Closing |
当通信对象转换到正在关闭状态时发生。 (继承自 CommunicationObject) |
Faulted |
在通信对象转换到出错状态时发生。 (继承自 CommunicationObject) |
Opened |
当通信对象转换到已打开状态时发生。 (继承自 CommunicationObject) |
Opening |
当通信对象转换到正在打开状态时发生。 (继承自 CommunicationObject) |
UnknownMessageReceived |
接收未知消息时发生。 (继承自 ServiceHostBase) |
显式接口实现
IDisposable.Dispose() |
关闭服务主机。 (继承自 ServiceHostBase) |