2. В цьому модулі:
Хостинг
Конфігорування хоста
2
Andrey Gladky
KspDevelop@gmail.com
3. Клас ServiceHost
Клас ServiceHost застосовується для конфігурації та
подання служби WCF з програми-хоста. Цей тип буде
використовуватися безпосередньо тільки при побудові
спеціальних збірок *.exe, призначених для хостингу
служб. Якщо ж для відкриття служби застосовується IIS,
то об'єкт ServiceHost створюється автоматично.
Цей тип вимагає повного опису служби, яке
отримується динамічно через конфігураційні
налаштування файлу *.config хоста. Хоча це
відбувається автоматично при створенні об'єкта, можна
вручну налаштувати стан об'єкта ServiceHost за
допомогою ряду його властивостей і методів.
Andrey Gladky
KspDevelop@gmail.com 3
4. Член Опис
Authorization Ця властивість отримує рівень авторизації для розміщеної служби
AddDefaultEndpoints () Цей метод застосовується для програмного конфігурації хоста служби WCF,
щоб він використовував будь-яку кількість готових кінцевих точок, наданих
платформою
AddServiceEndpoint () Цей метод дозволяє програмно зареєструвати кінцеву точку для хоста
BaseAddresses Це властивість отримує список зареєстрованих базових адрес для поточної
служби
BeginOpen()
BeginClose()
Ці методи дозволяють асинхронно відкривати і закривати об'єкт ServiceHost,
використовуючи стандартний асинхронний синтаксис делегата .NET
CloseTimeout Це властивість дозволяє встановлювати і отримувати час, відведений службі
на закриття
Credentials Це властивість отримує посвідчення безпеки, використовувані поточної
службою
EndOpen()
EndClose()
Ці методи являють собою асинхронні аналоги BeginOpen () і Begin Close ()
OpenTimeout Це властивість дозволяє встановлювати і отримувати час, відведений службі
на запуск
State Це властивість отримує значення, яке вказує поточний стан об'єкта
комунікації, представлене перерахуванням
CommunicationState (наприклад, Opened, Closed, Created) 4
5. Клас ChannelFactory
ChannelFactory дозволяє створити канал зв'язку для
служби без проксі-сервера. Який створює і управляє
різними типами каналів, які використовуються клієнтом
для відправки повідомлень з різними сконфігурованими
кінцевими точками обслуговування.
Клас ChannelFactory корисний, коли ви хочете
розділити контракт DLL загальної служби між клієнтом
і сервером.
Andrey Gladky
KspDevelop@gmail.com 5
7. Конфігурування хоста (app.config)
При побудові хоста для службового типу WCF необхідно
слідувати заздалегідь передбачуваному набору кроків,
частина з яких покладається на конфігурацію, а частина -
на код.
Визначити кінцеву точку для служби WCF в файлі конфігурації
хоста.
Програмно використовувати тип ServiceHost для відкриття
службових типів, доступних з цієї кінцевої точки.
Забезпечити постійну роботу хоста для обслуговування вхідних
клієнтських запитів. Цей крок не обов'язковий, якщо для хостингу
застосовується служба Windows або IIS.
У XML кінцева точка виражається елементом <endpoint> і його
атрибутами address, binding і contract.
Andrey Gladky
KspDevelop@gmail.com 7
8. Конфігурування хоста (app.config)
За допомогою вкладеного елемента <endpoint>
задається адреса, модель прив'язки (basicHttpBinding) і
повністю задане ім'я інтерфейсного типу, що визначає
контракт служби WCF (IEightBall). Оскільки
застосовується прив'язка на основі HTTP, вказується схема
http:// з довільним ідентифікатором порту.
Коли виконувальна програма стартує, створюється
екземпляр типу ServiceHost, якому повідомляється
служба WCF, що відповідає за хостинг. Під час виконання
цей об'єкт автоматично читає дані з контексту елемента
<system.serviceModel> файлу *.config хоста для
визначення правильної адреси, прив'язки і контракту, і
створює всі необхідні механізми.
Andrey Gladky
KspDevelop@gmail.com 8