次の方法で共有


Self-Host

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

このサンプルのセットアップ手順とビルド手順は、このトピックの最後にあります。

このサンプルでは、次のサンプル コードに示すように、特定のCalculatorService型のServiceHostを作成する静的 main 関数を実装します。

// 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="http://localhost:8000/ServiceModelSamples/service"/>
    </baseAddresses>
  </host>
  ...
</service>

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

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

  1. Windows Communication Foundation サンプル One-Time セットアップ手順を実行していることを確認します。

  2. ソリューションの C# または Visual Basic .NET エディションをビルドするには、「Windows Communication Foundation サンプルのビルド」の手順に従います。

  3. シングル コンピューター構成またはクロスコンピューター構成でサンプルを実行するには、「 Windows Communication Foundation サンプルの実行」の手順に従います。

こちらも参照ください