ServiceHost 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供服务的主机。
public ref class ServiceHost : System::ServiceModel::ServiceHostBase
public class ServiceHost : System.ServiceModel.ServiceHostBase
type ServiceHost = class
inherit ServiceHostBase
Public Class ServiceHost
Inherits 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();
}
}
}
' Host the service within this EXE console application.
Public Shared Sub Main()
' Create a ServiceHost for the CalculatorService type and use the base address from config.
Using svcHost As New ServiceHost(GetType(CalculatorService))
Try
' Open the ServiceHost to start listening for messages.
svcHost.Open()
' The service can now be accessed.
Console.WriteLine("The service is ready.")
Console.WriteLine("Press <ENTER> to terminate service.")
Console.WriteLine()
Console.ReadLine()
'Close the ServiceHost.
svcHost.Close()
Catch timeout As TimeoutException
Console.WriteLine(timeout.Message)
Console.ReadLine()
Catch commException As CommunicationException
Console.WriteLine(commException.Message)
Console.ReadLine()
End Try
End Using
End Sub
注解
实现由 Windows Communication Foundation (WCF) 服务模型编程模型使用的主机。
ServiceHost Internet Information Services (使用类在不使用 IIS) 或Windows激活服务 (WAS) 公开服务时,使用类来配置和公开客户端应用程序使用的服务。 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) |