Поделиться через


Self-Host

В примере SelfHost показано, как реализовать локальную службу в консольном приложении. Этот пример основан на Кратком руководстве. Файл конфигурации службы переименован из Web.config в App.config и изменен для настройки базового адреса, который использует хост. Исходный код службы был изменен для реализации статической Main функции, которая создает и открывает узел службы, предоставляющий настроенный базовый адрес. Реализация службы была изменена для записи выходных данных в консоль для каждой операции. Клиент не изменен, за исключением настройки правильного адреса конечной точки службы.

Замечание

Процедура установки и инструкции по сборке для этого примера находятся в конце этого раздела.

Пример реализует статическую функцию main для создания ServiceHost для заданного типа CalculatorService, как показано в следующем примере кода.

// 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<, дочернего> элемента узла<, дочернего> элемента <службы>, как показано в приведенной ниже конфигурации.

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

При запуске примера запросы и ответы операции отображаются как в окнах службы, так и в консоли клиента. Нажмите клавишу ВВОД в каждом окне консоли, чтобы завершить работу службы и клиента.

Настройка, сборка и запуск примера

  1. Убедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.

  2. Чтобы создать версию решения на C# или Visual Basic .NET, следуйте инструкциям по сборке примеров Windows Communication Foundation .

  3. Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в разделе "Примеры Windows Communication Foundation".

См. также