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) 服務模型程式設計模型所使用的主機。
當您不使用 Internet Information Services (IIS) 或 Windows Activation Services (WAS) 公開服務時,請使用 類別 ServiceHost 來設定和公開用戶端應用程式使用的服務。 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) |