Резидентное размещениеSelf-Host

В этом образце показано, как реализовать резидентную службу в консольном приложения.This sample demonstrates how to implement a self-hosted service in a console application. Этот образец основан на Начало работы.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. Нажмите клавишу ВВОД в каждом окне консоли, чтобы закрыть службу и клиент.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 примеров.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. Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в разделе выполнение примеров 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) и Windows Workflow Foundation (WF) для .NET Framework 4 , чтобы скачать все 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