自己ホストSelf-Host

このサンプルでは、自己ホスト型サービスをコンソール アプリケーションに実装する方法を示します。This sample demonstrates how to implement a self-hosted service in a console application. このサンプルがに基づいて、 Getting Startedします。This sample is based on the Getting Started. サービス構成ファイルは、名前が Web.config から App.config に変更され、ホストが使用するベース アドレスを構成するように変更されました。The service configuration file has been renamed from Web.config to App.config and modified to configure a base address, which the host uses. サービス ソース コードは、構成されたベース アドレスを提供するサービス ホストを作成して開く、静的な Main 関数を実装するように変更されました。The service source code has been modified to implement a static Main function that creates and opens a service host that provides the configured base address. サービス実装は、操作ごとにコンソールに出力を書き込むように変更されました。The service implementation has been modified to write output to the console for each operation. クライアントは、サービスのエンドポイント アドレスが正しく構成されたことを除き、変更されていません。The client has been unmodified, except for configuring the correct endpoint address of the service.

注意

このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。The setup procedure and build instructions for this sample are located at the end of this topic.

このサンプルは、静的な main 関数を実装し、指定された ServiceHost 型の CalculatorService を作成します。次のサンプル コードを参照してください。The sample implements a static main function to create a ServiceHost for the given CalculatorService type, as shown in the following sample code.

// Host the service within this EXE console application.  
public static void Main()  
{  
    // Create a ServiceHost for the CalculatorService type.  
    using (ServiceHost serviceHost =   
           new ServiceHost(typeof(CalculatorService)))  
    {  
        // Open the ServiceHost to create listeners   
        // and 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.WriteLine();  
        Console.ReadLine();  
    }  
}  

サービスがインターネット インフォメーション サービス (IIS) または Windows プロセス アクティブ化サービス (WAS) にホストされている場合、サービスのベース アドレスはホスト環境から提供されます。When a service is hosted in Internet Information Services (IIS) or Windows Process Activation Service (WAS), the base address of the service is provided by the hosting environment. 自己ホスト型の場合は、ベース アドレスを手動で指定する必要があります。In the self-hosted case, you must specify the base address yourself. これを使用して、add要素、子の <baseAddresses >の子<ホスト >の子<サービス >の次のサンプル構成のとおりです。This is done using the add element, child of <baseAddresses>, child of <host>, child of <service> as demonstrated in the following sample configuration.

<service   
    name="Microsoft.ServiceModel.Samples.CalculatorService"  
    behaviorConfiguration="CalculatorServiceBehavior">  
  <host>  
    <baseAddresses>  
      <add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>  
    </baseAddresses>  
  </host>  
  ...  
</service>  

このサンプルを実行すると、操作要求と応答がサービスとクライアントの両方のコンソール ウィンドウに表示されます。When you run the sample, the operation requests and responses are displayed in both the service and client console windows. どちらかのコンソールで Enter キーを押すと、サービスとクライアントがどちらもシャットダウンされます。Press ENTER in each console window to shut down the service and client.

サンプルをセットアップ、ビルド、および実行するにはTo set up, build, and run the sample

  1. 実行したことを確認、 Windows Communication Foundation サンプルの 1 回限りのセットアップ手順します。Ensure that you have performed the One-Time Setup Procedure for the Windows Communication Foundation Samples.

  2. ソリューションの C# 版または Visual Basic .NET 版をビルドするには、「 Building the Windows Communication Foundation Samples」の手順に従います。To build the C# or Visual Basic .NET edition of the solution, follow the instructions in Building the Windows Communication Foundation Samples.

  3. 1 つまたは複数コンピューター構成では、サンプルを実行する手順については、 Windows Communication Foundation サンプルの実行します。To run the sample in a single- or cross-computer configuration, follow the instructions in Running the Windows Communication Foundation Samples.

重要

サンプルは、既にコンピューターにインストールされている場合があります。The samples may already be installed on your computer. 続行する前に、次の (既定の) ディレクトリを確認してください。Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

このディレクトリが存在しない場合に移動Windows Communication Foundation (WCF) と .NET Framework 4 向けの Windows Workflow Foundation (WF) サンプルすべて Windows Communication Foundation (WCF) をダウンロードしてWFWFサンプル。If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WFWF samples. このサンプルは、次のディレクトリに格納されます。This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Services\Hosting\SelfHost

関連項目See also