Налаштування служб з використанням файлів конфігурації

Налаштування служби Windows Communication Foundation (WCF) за допомогою файлу конфігурації забезпечує гнучкість надання даних по кінцевій точці і поведінки служби безпосередньо в точці розгортання, а не під час розробки. У цій темі представлено опис основних доступних методів.

Додаткові відомості див. У розділі. Налаштування прив'язок для служб Windows Communication Foundation. Для списку найбільш часто використовуваних елементах см. В розділі Прив'язки, що надаються системою. Додаткові відомості про про кінцевих точках за замовчуванням, привязках і режимах роботи, див. Розділи Спрощена конфігурація і Спрощена конфігурація служб WCF.

При розгортанні сценаріїв паралельного виконання, в яких розгорнуто дві різні версії служби, необхідно вказувати часткові імена збірок, на які посилаються файли конфігурації. Це пов'язано з тим, що файл конфігурації спільно використовується всіма версіями служби, які можуть виконуватися під керуванням різних версій платформи .NET Framework.

WCF використовує систему конфігурації System.Configuration .NET Framework.

Під час налаштування служби в Visual Studio використовуйте або файл Web.config, або файл App.config, щоб задати параметри. Вибір імені файлу конфігурації визначається обраною для служби середовищем розміщення. Якщо служба розміщується за допомогою IIS, використовуйте файл Web.config. Якщо служба розміщується за допомогою іншого середовища розміщення, використовуйте файл App.config.

У Visual Studio файл з ім'ям App.config використовується для створення остаточного файлу конфігурації. Остаточне ім'я, яке фактично використовується для конфігурації, залежить від імені збірки. Наприклад, збірка з ім'ям "Cohowinery.exe" має ім'я остаточного файлу конфігурації "Cohowinery.exe.config". Однак слід змінити тільки файл App.config. Зміни, внесені в це файл, автоматично вносяться в остаточний файл конфігурації програми під час компіляції.

При використанні файлу App.config система конфігурації об'єднує файл App.config з вмістом файла Machine.config, коли запускається додаток і застосовується конфігурація. Цей механізм дозволяє визначити параметри в рамках всього комп'ютера в файлі Machine.config. Файл App.config можна використовувати для перевизначення параметрів файлу Machine.config. Також передбачена можливість блокування в параметрах файлу Machine.config згідно звичної роботи. У разі використання файлу конфігурації Web.config, то система об'єднує файли Web.config у всіх батьківських каталогах аж до каталогу додатка в застосовуваної конфігурації. Додаткові відомості про конфігурацію і пріоритети параметрів см. В розділах в просторі імен System.Configuration.

Основні розділи файлу конфігурації включають в себе наступні елементи.

Розділи прив'язок і поведінки є необов'язковими і вказуються тільки при необхідності.

Елемент services містить специфікації для всіх служб, які розміщує додаток. Починаючи зі спрощеної моделі настройки в .NET Framework 4, цей розділ задавати необов'язково.

Кожна служба має такі атрибути:

name. Визначає тип, що забезпечує реалізацію контракту служби. Це повне ім'я, що складається з простору імен, точки і імені типу, наприклад "MyNameSpace.myServiceType".

behaviorConfiguration. Задає ім'я одного з елементів behavior. знайдених в behaviors. Заданий поведінку управляє діями, наприклад, чи дозволяє служба уособлення. Якщо значенням є пусте ім'я, або об'єкт behaviorConfiguration не вказано, то в службу додається набір поводжень служби за замовчуванням.

binding. Як правило, задає надається системою прив'язку типу T: System.ServiceModel.WsHttpBinding. але також може задавати визначається користувачем прив'язку. Задана прив'язка визначає використовуваний тип транспорту, безпеки та кодування, а також підтримуються або включені чи надійні сеанси, транзакції або потокова передача.

bindingConfiguration. Якщо потрібно змінити значення прив'язки за замовчуванням, можна налаштувати відповідний елемент binding в елементі bindings. Цьому атрибуту повинно бути присвоєно те ж значення, що і атрибуту name елемента binding. який використовується для зміни значень за замовчуванням. Якщо ім'я не задано, або в прив'язці не заданий об'єкт bindingConfiguration. то в кінцевій точці використовується прив'язка за замовчуванням типу прив'язки.

contract. Задає інтерфейс, що визначає контракт. Це інтерфейс, реалізований в типі CLR, який заданий атрибутом name елемента service.

element reference

Елемент bindings містить специфікації для всіх прив'язок, які можуть використовуватися будь-який кінцевою точкою, заданої в будь-якій службі.

Елементи binding. містяться в елементі bindings. можуть бути однією з наданих системою прив'язок (див. розділ Прив'язки, що надаються системою) або користувальницької прив'язкою (див. розділ Користувальницькі прив'язки). Елемент binding має атрибут name. сопоставляющий прив'язку з кінцевою точкою, заданою в атрибуті bindingConfiguration елемента endpoint. Якщо ім'я не вказано, то прив'язка буде відповідати значенню за замовчуванням для цього типу прив'язки.

Додаткову інформацію про створення служб і клієнтів см. В розділі Configuring Windows Communication Foundation Applications.

Це елемент контейнера для елементів behavior. задають поведінку служби.

Кожен елемент behavior визначається атрибутом name і забезпечує або надане системою поведінку (наприклад ), Або призначене для користувача поведінку. Якщо ім'я не задано, то елемент behavior буде відповідати поведінки за замовчуванням для служби або кінцевої точки.