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


Иерархическая модель конфигурации

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

Подробные сведения об образце

В .NET Framework, версия 4 для WCF разработано усовершенствование иерархической модели конфигурации. Примером модели иерархической конфигурации может служить модель, определенная файлом Machine.config -> Rootweb.config -> Web.config. В .NET Framework 4 привязки и поведения, определенные на более высоких уровнях иерархии конфигурации, добавляются в службы без явной настройки. В этом образце показано, как можно упростить настройку служб, пользуясь элементами конфигурации, определенными на уровне компьютера или приложения.

Этот образец состоит из девяти служб, которые определены на трех уровнях иерархии. Service1 находится на корневом уровне. Service2 и Service3 наследуют элементы по умолчанию от Service1. Service4, Service5, Service6 и Service7 определены на третьем уровне иерархии, наследуя элементы по умолчанию от Service3. Наконец, Service10 и Service11 находятся на четвертом уровне иерархии.

Все службы реализуют контракт IDesc. Далее приведено определение интерфейса IDesc, показывающее методы, доступ к которым имеется в этом интерфейсе. Интерфейс IDesc определен в файле Service1.cs.

    // Define a service contract
    [ServiceContract(Namespace="http://Microsoft.Samples.ConfigHierarchicalModel")]
    public interface IDesc
    {
        [OperationContract]
        List<string> ListEndpoints();
        [OperationContract]
        List<string> ListServiceBehaviors();
        [OperationContract]
        List<string> ListEndpointBehaviors();
    }

Реализация службами этих методов является простой. ListEndpoints проходит по всем конечным точкам службы и возвращает список всех конечных точек, которые имеет служба. ListServiceBehaviors проходит по всем поведениям, добавленным в службу, и возвращает список всех поведений службы, связанных с этой службой. ListEndpointBehaviors работает так же, как ListServiceBehaviors, за исключением того, что он возвращает список поведений конечных точек.

Благодаря этой реализации клиент знает, сколько конечных точек имеет служба, а также какие поведения службы и конечной точки добавлены в службу. Клиент, реализованный как часть образца, добавляет ссылку на службу во все службы решения и показывает эти элементы для всех служб.

Использование этого образца

Запуск клиента

  1. Откройте файл ConfigHierarchicalModel.sln с помощью Visual Studio 2010.

  2. Проект клиента еще не установлен в качестве запускаемого проекта; выполните следующие действия.

    1. В Обозревателе решений щелкните правой кнопкой мыши решение и выберите команду Свойства.

    2. В разделе Общие свойства выберите Запускаемый проект, затем Один запускаемый проект.

    3. В раскрывающемся списке Один запускаемый проект выберите Client.

    4. Нажмите кнопку ОК, чтобы закрыть диалоговое окно.

  3. Нажмите клавишу F6, чтобы построить образец.

  4. Нажмите клавиши Ctrl + F5, чтобы запустить клиент.

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

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

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

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

Ee663221.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\ConfigHierarchicalModel