クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
.NET 開発
.NET Framework 3.5
.NET Framework 3.5
System.ServiceModel 名前空間
ServiceHost クラス

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2008/.NET Framework 3.5

その他のバージョンについては、以下の情報を参照してください。
.NET Framework クラス ライブラリ
ServiceHost クラス

更新 : 2007 年 11 月

サービスのホストを提供します。

名前空間 :  System.ServiceModel
アセンブリ :  System.ServiceModel (System.ServiceModel.dll 内)
Visual Basic (宣言)
Public Class ServiceHost _
    Inherits ServiceHostBase
Visual Basic (使用法)
Dim instance As ServiceHost
C#
public class ServiceHost : ServiceHostBase
Visual C++
public ref class ServiceHost : public ServiceHostBase
J#
public class ServiceHost extends ServiceHostBase
JScript
public class ServiceHost extends ServiceHostBase

Windows Communication Foundation (WCF) サービス モデルのプログラミング モデルで使用されるホストを実装します。

インターネット インフォメーション サービス (IIS) と Windows アクティベーション サービス (WAS) のどちらも使用せずにサービスを公開する場合は、ServiceHost クラスを使用して、クライアント アプリケーションが使用するサービスを構成して公開します。IIS と WAS はどちらも ServiceHost オブジェクトと自動的に対話します。

呼び出し元が使用できるようにサービスを公開するために、WCF では、サービスの完全な説明を必要とします (ServiceDescription クラスで表されます)。ServiceHost クラスは、サービスの種類と構成情報から ServiceDescription を作成した後、その説明を使用して、説明に含まれるエンドポイント用の ChannelDispatcher オブジェクトを作成します。

ServiceHost オブジェクトを使用して、サービスのロード、エンドポイントの構成、セキュリティ設定の適用、および受信要求を処理するためのリスナの起動を行います。

Visual Basic
' 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


C#
    // Host the service within this EXE console application.
    public static void Main()
    {
      // Create a ServiceHost for the CalculatorService type and use
      // the base address from config.
      ServiceHost hostDefault = new 
       ServiceHost(typeof(CalculatorService));

      TimeSpan closeTimeout = hostDefault.CloseTimeout;

      TimeSpan openTimeout = hostDefault.OpenTimeout;


      ServiceAuthorizationBehavior authorization =
          hostDefault.Authorization;

      ServiceCredentials credentials =
                      hostDefault.Credentials;

      ServiceDescription description = 
              hostDefault.Description;


      int manualFlowControlLimit = 
              hostDefault.ManualFlowControlLimit;


      NetTcpBinding portsharingBinding = new NetTcpBinding();
      hostDefault.AddServiceEndpoint(
    typeof( CalculatorService ),
    portsharingBinding,
    "net.tcp://localhost/MyService" );


      int newLimit = hostDefault.IncrementManualFlowControlLimit(100);

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

この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

.NET Framework

サポート対象 : 3.5、3.0
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker