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


Несколько конечных точек

В образце "Несколько конечных точек" показано, как настроить несколько конечных точек на службе и как взаимодействовать с каждой конечной точкой со стороны клиента. Этот образец основан на образце Образец для начала работы. Конфигурация службы была изменена для определения двух конечных точек, которые поддерживают контракт ICalculator, но для которых заданы различные адреса с использованием различных привязок. Конфигурация и код клиента были изменены, чтобы он мог взаимодействовать с обеими конечными точками службы.

ms751515.note(ru-ru,VS.100).gifПримечание
Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела.

Файл службы Web.config был изменен для определения двух конечных точек, которые поддерживают один и тот же контракт ICalculator, но для которых заданы различные адреса с использованием различных привязок. Первая конечная точка определена по базовому адресу с использованием привязки basicHttpBinding, для которой не включены функции безопасности. Вторая конечная точка определена по адресу {базовый_адрес}/secure с использованием привязки wsHttpBinding, которая по умолчанию является защищенной с помощью протокола WS-Security с проверкой подлинности Windows.

<service 
    name="Microsoft.ServiceModel.Samples.CalculatorService"
    behaviorConfiguration="CalculatorServiceBehavior">
  <!-- This endpoint is exposed at the base address provided by host:       https://localhost/servicemodelsamples/service.svc  -->
  <endpoint address=""
            binding="basicHttpBinding"
            contract="Microsoft.ServiceModel.Samples.ICalculator" />
  <!-- secure endpoint exposed at {base address}/secure:       https://localhost/servicemodelsamples/service.svc/secure -->
  <endpoint address="secure"
            binding="wsHttpBinding"
            contract="Microsoft.ServiceModel.Samples.ICalculator" />
  ...
</service>

Обе конечные точки также настроены на клиенте. Этим конечным точкам присвоены имена, чтобы вызывающий код мог передать имя требуемой конечной точки в конструктор клиента.

<client>
  <!-- Passing "basic" into the constructor of the CalculatorClient       class selects this endpoint.-->
  <endpoint name="basic"
            address="https://localhost/servicemodelsamples/service.svc" 
            binding="basicHttpBinding" 
            contract="Microsoft.ServiceModel.Samples.ICalculator" />
  <!-- Passing "secure" into the constructor of the CalculatorClient       class selects this endpoint.-->
  <endpoint name="secure"
address="https://localhost/servicemodelsamples/service.svc/secure" 
            binding="wsHttpBinding" 
            contract="Microsoft.ServiceModel.Samples.ICalculator" />
</client>

Клиент использует обе конечные точки, как показано в следующем коде.

static void Main()
{
    // Create a client to the basic endpoint configuration.
    CalculatorClient client = new CalculatorClient("basic");
    Console.WriteLine("Communicate with basic endpoint.");
    // call operations
    DoCalculations(client);

    // Close the client and release resources.
    client.Close();

    // Create a client to the secure endpoint configuration.
    client = new CalculatorClient("secure");
    Console.WriteLine("Communicate with secure endpoint.");
    // Call operations.
    DoCalculations(client);

    // Close the client and release resources.
    client.Close();

    Console.WriteLine();
    Console.WriteLine("Press <ENTER> to terminate client.");
    Console.ReadLine();
}

При запуске клиента отображаются взаимодействия с обеими конечными точками.

Communicate with basic endpoint.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Communicate with secure endpoint.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

Настройка, построение и выполнение образца

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

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

  3. Чтобы выполнить образец на одном или нескольких компьютерах, следуйте инструкциям в разделе Running the Windows Communication Foundation Samples.

ms751515.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\WF_WCF_Samples

Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.

<диск_установки>:\WF_WCF_Samples\WCF\Basic\Services\MultipleEndpoints