次の方法で共有


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()

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

(継承元 CommunicationObject)
AddBaseAddress(Uri)

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

AddDefaultEndpoints()

既定のバインドを使用して、サービス ホストで検出された各コントラクト内のすべてのベース アドレスのサービス エンドポイントを追加します。

AddServiceEndpoint(ServiceEndpoint)

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

AddServiceEndpoint(String, Binding, String)

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

AddServiceEndpoint(String, Binding, String, Uri)

コントラクト、バインド、エンドポイント アドレス、およびサービスがリッスンするアドレスを表す URI を指定して、ホストされるサービスにサービス エンドポイントを追加します。

AddServiceEndpoint(String, Binding, Uri)

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

AddServiceEndpoint(String, Binding, Uri, Uri)

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

ApplyConfiguration()

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

BeginClose(AsyncCallback, Object)

通信オブジェクトをクローズするための非同期操作を開始します。

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

タイムアウトを指定して、通信オブジェクトをクローズするための非同期操作を開始します。

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

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

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

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

(継承元 CommunicationObject)
Close()

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

(継承元 CommunicationObject)
Close(TimeSpan)

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

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

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

EndClose(IAsyncResult)

通信オブジェクトをクローズするための非同期操作を完了します。

(継承元 CommunicationObject)
EndOpen(IAsyncResult)

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

(継承元 CommunicationObject)
Equals(Object)

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

(継承元 Object)
Fault()

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

(継承元 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()

通信オブジェクトが Closing 状態に遷移しているときに呼び出されます。

(継承元 CommunicationObject)
OnClosing()

通信オブジェクトが Closing 状態に遷移しているときに呼び出されます。

(継承元 CommunicationObject)
OnEndClose(IAsyncResult)

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

OnEndOpen(IAsyncResult)

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

OnFaulted()

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

(継承元 CommunicationObject)
OnOpen(TimeSpan)

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

OnOpened()

ホストされるサービスのサービス資格情報、サービス認証およびサービス承認動作を取得します。

OnOpening()

通信オブジェクトが Opening 状態に遷移しているときに呼び出されます。

(継承元 CommunicationObject)
Open()

通信オブジェクトを、Created 状態から Opened 状態に遷移させます。

(継承元 CommunicationObject)
Open(TimeSpan)

指定した時間内で、通信オブジェクトを Created 状態から Opened 状態に遷移させます。

(継承元 CommunicationObject)
ReleasePerformanceCounters()

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

SetEndpointAddress(ServiceEndpoint, String)

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

ThrowIfDisposed()

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

(継承元 CommunicationObject)
ThrowIfDisposedOrImmutable()

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

(継承元 CommunicationObject)
ThrowIfDisposedOrNotOpen()

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

(継承元 CommunicationObject)
ToString()

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

(継承元 Object)

イベント

Closed

通信オブジェクトが Closed 状態に遷移すると発生します。

(継承元 CommunicationObject)
Closing

通信オブジェクトが Closing 状態に遷移すると発生します。

(継承元 CommunicationObject)
Faulted

通信オブジェクトが Faulted 状態に遷移すると発生します。

(継承元 CommunicationObject)
Opened

通信オブジェクトが Opened 状態に遷移すると発生します。

(継承元 CommunicationObject)
Opening

通信オブジェクトが Opening 状態に遷移すると発生します。

(継承元 CommunicationObject)
UnknownMessageReceived

不明のメッセージが受信されたときに発生します。

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

IDisposable.Dispose()

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

適用対象