次の方法で共有


自己ホスト

Download sample

このサンプルでは、自己ホスト型サービスをコンソール アプリケーションに実装する方法を示します。このサンプルは、「入門サンプル」に基づいています。サービス構成ファイルは、名前が Web.config から App.config に変更され、ホストが使用するベース アドレスを構成するように変更されました。サービス ソース コードは、構成されたベース アドレスを提供するサービス ホストを作成して開く、静的な Main 関数を実装するように変更されました。サービス実装は、操作ごとにコンソールに出力を書き込むように変更されました。クライアントは、サービスのエンドポイント アドレスが正しく構成されたことを除き、変更されていません。

Noteメモ :

このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。

このサンプルは、静的な main 関数を実装し、指定された CalculatorService 型の ServiceHost を作成します。次のサンプル コードを参照してください。

// 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) にホストされている場合、サービスのベース アドレスはホスト環境から提供されます。自己ホスト型の場合は、ベース アドレスを手動で指定する必要があります。この操作は、add 要素、baseAddresses の子、host の子、および service の子を使用することによって実行されます。次のサンプル構成を参照してください。

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

このサンプルを実行すると、操作要求と応答がサービスとクライアントの両方のコンソール ウィンドウに表示されます。どちらかのコンソールで Enter キーを押すと、サービスとクライアントがどちらもシャットダウンされます。

サンプルを設定、ビルド、および実行するには

  1. Windows Communication Foundation サンプルの 1 回限りのセットアップの手順」を実行したことを確認します。

  2. ソリューションの C# 版 または Visual Basic .NET 版をビルドするには、「Windows Communication Foundation サンプルのビルド」の手順を参照してください。

  3. サンプルを単一コンピュータ構成または複数コンピュータ構成で実行するには、「Windows Communication Foundation サンプルの実行」の手順を参照してください。

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.