ServiceHostBase クラス

定義

ServiceHostBase クラスを拡張して、カスタム プログラミング モデルを公開するホストを実装します。

public ref class ServiceHostBase abstract : System::ServiceModel::Channels::CommunicationObject, IDisposable, System::ServiceModel::IExtensibleObject<System::ServiceModel::ServiceHostBase ^>
public abstract class ServiceHostBase : System.ServiceModel.Channels.CommunicationObject, IDisposable, System.ServiceModel.IExtensibleObject<System.ServiceModel.ServiceHostBase>
type ServiceHostBase = class
    inherit CommunicationObject
    interface IExtensibleObject<ServiceHostBase>
    interface IDisposable
Public MustInherit Class ServiceHostBase
Inherits CommunicationObject
Implements IDisposable, IExtensibleObject(Of ServiceHostBase)
継承
ServiceHostBase
派生
実装

このサンプルでは、ServiceHostから派生した 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

注釈

ServiceHostBase クラスを使用して、カスタム プログラミング モデルを提供するホストを作成します。 Windows Communication Foundation (WCF) サービス プログラミング モデルでは、ServiceHost クラスが使用されます。

このクラスから派生するマネージド C++ ユーザーの特別な注意:

  • デストラクターではなく、クリーンアップ コードを (On)(Begin)Close (または OnAbort) に配置します。
  • デストラクターを避けます。これにより、コンパイラは IDisposableを自動生成します。
  • 参照以外のメンバーは使用しないでください。コンパイラが IDisposableを自動生成する可能性があります。
  • ファイナライザーを使用しないでください。ただし、ビルド警告を含める場合は、ビルド警告を抑制し、 SuppressFinalize(Object) とファイナライザー自体を (On)(Begin)Close (または OnAbort) から呼び出して、自動生成された IDisposable 動作をエミュレートする必要があります。

コンストラクター

名前 説明
ServiceHostBase()

ServiceHostBase クラスの新しいインスタンスを初期化します。

プロパティ

名前 説明
Authentication

サービス認証の動作を取得します。

Authorization

ホストされているサービスの承認動作を取得します。

BaseAddresses

ホストされているサービスによって使用されるベース アドレスを取得します。

ChannelDispatchers

サービス ホストによって使用されるチャネル ディスパッチャーのコレクションを取得します。

CloseTimeout

サービス ホストが閉じるのに許可される時間の間隔を取得または設定します。

Credentials

ホストされているサービスの資格情報を取得します。

DefaultCloseTimeout

サービス ホストが閉じるのに許可される既定の時間間隔を取得します。

DefaultOpenTimeout

サービス ホストを開くために許可される既定の時間間隔を取得します。

Description

ホストされているサービスの説明を取得します。

Extensions

現在指定されているサービス ホストの拡張機能を取得します。

ImplementedContracts

ホストされているサービスによって実装されたコントラクトを取得します。

IsDisposed

通信オブジェクトが破棄されたかどうかを示す値を取得します。

(継承元 CommunicationObject)
ManualFlowControlLimit

ホストされるサービスによって受信されるメッセージのフロー制御制限を取得または設定します。

OpenTimeout

サービス ホストが開くことを許可する時間間隔を取得または設定します。

State

通信オブジェクトの現在の状態を示す値を取得します。

(継承元 CommunicationObject)
ThisLock

状態遷移中にクラス インスタンスを保護する相互排他的ロックを取得します。

(継承元 CommunicationObject)

メソッド

名前 説明
Abort()

通信オブジェクトを現在の状態から終了状態に直ちに遷移させます。

(継承元 CommunicationObject)
AddBaseAddress(Uri)

サービス ホストにベース アドレスを追加します。

AddDefaultEndpoints()

既定のバインディングを使用して、サービス ホストで見つかった各コントラクト内のすべてのベース アドレスのサービス エンドポイントを追加します。

AddServiceEndpoint(ServiceEndpoint)

指定したサービス エンドポイントをホステッド サービスに追加します。

AddServiceEndpoint(String, Binding, String, Uri)

リッスンするアドレスを含むコントラクト、バインディング、エンドポイント アドレス、URI を指定して、ホストされるサービスにサービス エンドポイントを追加します。

AddServiceEndpoint(String, Binding, String)

指定したコントラクト、バインディング、およびエンドポイント アドレスを使用して、ホストされているサービスにサービス エンドポイントを追加します。

AddServiceEndpoint(String, Binding, Uri, Uri)

エンドポイントとリッスン アドレスを含む、指定されたコントラクト、バインディング、URI を使用して、ホストされるサービスにサービス エンドポイントを追加します。

AddServiceEndpoint(String, Binding, Uri)

指定したコントラクト、バインディング、およびエンドポイント アドレスを含む URI を使用して、ホストされるサービスにサービス エンドポイントを追加します。

ApplyConfiguration()

構成ファイルからサービス記述情報を読み込み、構築中のランタイムに適用します。

BeginClose(AsyncCallback, Object)

通信オブジェクトを閉じる非同期操作を開始します。

(継承元 CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

指定したタイムアウトで通信オブジェクトを閉じる非同期操作を開始します。

(継承元 CommunicationObject)
BeginOpen(AsyncCallback, Object)

通信オブジェクトを開く非同期操作を開始します。

(継承元 CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

指定した時間内に通信オブジェクトを開く非同期操作を開始します。

(継承元 CommunicationObject)
Close()

通信オブジェクトを現在の状態から閉じた状態に遷移させます。

(継承元 CommunicationObject)
Close(TimeSpan)

指定した時間内に、通信オブジェクトを現在の状態から閉じた状態に遷移させます。

(継承元 CommunicationObject)
CreateDescription(IDictionary<String,ContractDescription>)

派生クラスで実装された場合は、ホストされるサービスの説明を作成します。

EndClose(IAsyncResult)

通信オブジェクトを閉じる非同期操作を完了します。

(継承元 CommunicationObject)
EndOpen(IAsyncResult)

通信オブジェクトを開く非同期操作を完了します。

(継承元 CommunicationObject)
Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Fault()

通信オブジェクトを現在の状態から障害状態に遷移させます。

(継承元 CommunicationObject)
GetCommunicationObjectType()

通信オブジェクトの種類を取得します。

(継承元 CommunicationObject)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
IncrementManualFlowControlLimit(Int32)

ホストされるサービスに対するメッセージのフロー レートの制限を、指定した増分で増やします。

InitializeDescription(UriSchemeKeyedCollection)

コントラクトとサービスの説明を使用して、サービス ホストを作成して初期化します。

InitializeRuntime()

サービス ホストのランタイムを初期化します。

LoadConfigurationSection(ServiceElement)

ホストされるサービスの構成ファイルからサービス要素を読み込みます。

MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
OnAbort()

サービスを中止します。

OnBeginClose(TimeSpan, AsyncCallback, Object)

サービス ホストの終了時に呼び出された非同期操作を開始します。

OnBeginOpen(TimeSpan, AsyncCallback, Object)

サービス ホストを開くときに呼び出される非同期操作を開始します。

OnClose(TimeSpan)

チャネル ディスパッチャー、関連するインスタンス コンテキスト、リスナーなど、ホストされているサービスを閉じます。

OnClosed()

サービス ホストによって使用されるリソースを解放します。

OnClosed()

通信オブジェクトの終了状態への遷移中に呼び出されます。

(継承元 CommunicationObject)
OnClosing()

通信オブジェクトの終了状態への遷移中に呼び出されます。

(継承元 CommunicationObject)
OnEndClose(IAsyncResult)

サービス ホストの終了時に呼び出された非同期操作を完了します。

OnEndOpen(IAsyncResult)

サービス ホストを開くときに呼び出された非同期操作を完了します。

OnFaulted()

同期障害操作の呼び出しにより、通信オブジェクトが障害状態に遷移した後に、処理を挿入します。

(継承元 CommunicationObject)
OnOpen(TimeSpan)

チャネル ディスパッチャーを開きます。

OnOpened()

ホステッド サービスのサービス資格情報、サービス認証、および承認動作を取得します。

OnOpening()

通信オブジェクトの開始状態への遷移中に呼び出されます。

(継承元 CommunicationObject)
Open()

通信オブジェクトが作成された状態から開かれた状態に遷移します。

(継承元 CommunicationObject)
Open(TimeSpan)

指定した時間内に、通信オブジェクトが作成された状態から開かれた状態に遷移します。

(継承元 CommunicationObject)
ReleasePerformanceCounters()

ホストされるサービスのサービス およびチャネル ディスパッチャーのパフォーマンス カウンターを解放します。

SetEndpointAddress(ServiceEndpoint, String)

指定したエンドポイントのエンドポイント アドレスを、指定したアドレスに設定します。

ThrowIfDisposed()

通信オブジェクトが破棄された場合に例外をスローします。

(継承元 CommunicationObject)
ThrowIfDisposedOrImmutable()

State プロパティがCreated状態に設定されていない通信オブジェクトの場合は、例外をスローします。

(継承元 CommunicationObject)
ThrowIfDisposedOrNotOpen()

通信オブジェクトが Opened 状態でない場合は、例外をスローします。

(継承元 CommunicationObject)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

イベント

名前 説明
Closed

通信オブジェクトが閉じた状態に遷移したときに発生します。

(継承元 CommunicationObject)
Closing

通信オブジェクトが終了状態に遷移したときに発生します。

(継承元 CommunicationObject)
Faulted

通信オブジェクトが障害状態に遷移したときに発生します。

(継承元 CommunicationObject)
Opened

通信オブジェクトが開かれた状態に遷移したときに発生します。

(継承元 CommunicationObject)
Opening

通信オブジェクトが開始状態に遷移したときに発生します。

(継承元 CommunicationObject)
UnknownMessageReceived

不明なメッセージを受信したときに発生します。

明示的なインターフェイスの実装

名前 説明
IDisposable.Dispose()

サービス ホストを閉じます。

適用対象