次の方法で共有


自己ホスト

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

ms750530.note(ja-jp,VS.100).gif注 :
このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。

このサンプルは、静的な 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. サンプルを単一コンピューター構成または複数コンピューター構成で実行するには、「Running the Windows Communication Foundation Samples」の手順に従います。

ms750530.Important(ja-jp,VS.100).gif 注 :
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。

<InstallDrive>:\WF_WCF_Samples

このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。

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

参照

その他のリソース

AppFabric のホストおよび永続化のサンプル