ServiceHostBase Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
ServiceHostBase Расширяет класс для реализации узлов, предоставляющих пользовательские модели программирования.
public ref class ServiceHostBase abstract : System::ServiceModel::Channels::CommunicationObject, IDisposable, System::ServiceModel::IExtensibleObject<System::ServiceModel::ServiceHostBase ^>
public abstract class ServiceHostBase : System.ServiceModel.Channels.CommunicationObject, IDisposable, System.ServiceModel.IExtensibleObject<System.ServiceModel.ServiceHostBase>
type ServiceHostBase = class
inherit CommunicationObject
interface IExtensibleObject<ServiceHostBase>
interface IDisposable
Public MustInherit Class ServiceHostBase
Inherits CommunicationObject
Implements IDisposable, IExtensibleObject(Of ServiceHostBase)
- Наследование
- Производный
- Реализации
Примеры
В этом примере используется класс, производный ServiceHost от ServiceHostBase.
// Host the service within this EXE console application.
public static void Main()
{
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService)))
{
try
{
// Open the ServiceHost to 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.ReadLine();
// Close the ServiceHost.
serviceHost.Close();
}
catch (TimeoutException timeProblem)
{
Console.WriteLine(timeProblem.Message);
Console.ReadLine();
}
catch (CommunicationException commProblem)
{
Console.WriteLine(commProblem.Message);
Console.ReadLine();
}
}
}
' Host the service within this EXE console application.
Public Shared Sub Main()
' Create a ServiceHost for the CalculatorService type and use the base address from config.
Using svcHost As New ServiceHost(GetType(CalculatorService))
Try
' Open the ServiceHost to start listening for messages.
svcHost.Open()
' The service can now be accessed.
Console.WriteLine("The service is ready.")
Console.WriteLine("Press <ENTER> to terminate service.")
Console.WriteLine()
Console.ReadLine()
'Close the ServiceHost.
svcHost.Close()
Catch timeout As TimeoutException
Console.WriteLine(timeout.Message)
Console.ReadLine()
Catch commException As CommunicationException
Console.WriteLine(commException.Message)
Console.ReadLine()
End Try
End Using
End Sub
Комментарии
ServiceHostBase Используйте класс для создания узлов, предоставляющих пользовательскую модель программирования. Модель программирования службы Windows Communication Foundation (WCF) использует класс ServiceHost.
Специальное примечание для пользователей Managed C++, производных от этого класса:
- Поместите код очистки в (On)(Begin)Close (and/or OnAbort), а не в деструктор.
- Избегайте деструкторов; они вызывают автоматическое создание IDisposableкомпилятора.
- Избегайте элементов без ссылок; они могут привести к автоматическому созданию IDisposableкомпилятора.
- Избегайте завершения; но если включить его, следует отключить предупреждение и вызов SuppressFinalize(Object) сборки и вызвать и завершить работу из (On)(Begin)Close (and/or OnAbort), чтобы эмулировать то, что было бы автоматически создано IDisposable .
Конструкторы
| Имя | Описание |
|---|---|
| ServiceHostBase() |
Инициализирует новый экземпляр класса ServiceHostBase. |
Свойства
| Имя | Описание |
|---|---|
| Authentication |
Возвращает поведение проверки подлинности службы. |
| Authorization |
Возвращает поведение авторизации для размещенной службы. |
| BaseAddresses |
Возвращает базовые адреса, используемые размещенной службой. |
| ChannelDispatchers |
Возвращает коллекцию диспетчеров каналов, используемых узлом службы. |
| CloseTimeout |
Возвращает или задает интервал времени, разрешенный для закрытия узла службы. |
| Credentials |
Возвращает учетные данные для размещенной службы. |
| DefaultCloseTimeout |
Возвращает интервал времени по умолчанию, разрешенный для закрытия узла службы. |
| DefaultOpenTimeout |
Возвращает интервал времени по умолчанию, разрешенный для открытия узла службы. |
| Description |
Возвращает описание размещенной службы. |
| Extensions |
Возвращает расширения для текущего указанного узла службы. |
| ImplementedContracts |
Извлекает контракты, реализованные размещенной службой. |
| IsDisposed |
Возвращает значение, указывающее, был ли удален объект связи. (Унаследовано от CommunicationObject) |
| ManualFlowControlLimit |
Возвращает или задает ограничение управления потоком для сообщений, полученных размещенной службой. |
| OpenTimeout |
Возвращает или задает интервал времени, разрешенный для открытия узла службы. |
| State |
Возвращает значение, указывающее текущее состояние объекта связи. (Унаследовано от CommunicationObject) |
| ThisLock |
Получает взаимоисключающую блокировку, которая защищает экземпляр класса во время перехода состояния. (Унаследовано от CommunicationObject) |
Методы
| Имя | Описание |
|---|---|
| Abort() |
Вызывает немедленное переход объекта связи из текущего состояния в закрывающемся состоянии. (Унаследовано от CommunicationObject) |
| AddBaseAddress(Uri) |
Добавляет базовый адрес в узел службы. |
| AddDefaultEndpoints() |
Добавляет конечные точки службы для всех базовых адресов в каждом контракте, найденном в узле службы, с привязкой по умолчанию. |
| AddServiceEndpoint(ServiceEndpoint) |
Добавляет указанную конечную точку службы в размещенную службу. |
| AddServiceEndpoint(String, Binding, String, Uri) |
Добавляет конечную точку службы в размещенную службу с указанным контрактом, привязкой, адресом конечной точки и универсальным кодом ресурса (URI), содержащим адрес, по которому он прослушивает. |
| AddServiceEndpoint(String, Binding, String) |
Добавляет конечную точку службы в размещенную службу с указанным контрактом, привязкой и адресом конечной точки. |
| AddServiceEndpoint(String, Binding, Uri, Uri) |
Добавляет конечную точку службы в размещенную службу с указанным контрактом, привязкой и URI, содержащими конечную точку и адреса прослушивания. |
| AddServiceEndpoint(String, Binding, Uri) |
Добавляет конечную точку службы в размещенную службу с указанным контрактом, привязкой и универсальным кодом ресурса (URI), содержащим адрес конечной точки. |
| ApplyConfiguration() |
Загружает сведения о описании службы из файла конфигурации и применяет его к созданной среде выполнения. |
| BeginClose(AsyncCallback, Object) |
Начинает асинхронную операцию закрытия объекта связи. (Унаследовано от CommunicationObject) |
| BeginClose(TimeSpan, AsyncCallback, Object) |
Начинает асинхронную операцию закрытия объекта связи с заданным временем ожидания. (Унаследовано от CommunicationObject) |
| BeginOpen(AsyncCallback, Object) |
Начинает асинхронную операцию для открытия объекта связи. (Унаследовано от CommunicationObject) |
| BeginOpen(TimeSpan, AsyncCallback, Object) |
Начинает асинхронную операцию открытия объекта связи в течение указанного интервала времени. (Унаследовано от CommunicationObject) |
| Close() |
Вызывает переход объекта связи из текущего состояния в закрытое состояние. (Унаследовано от CommunicationObject) |
| Close(TimeSpan) |
Вызывает переход объекта связи из текущего состояния в закрытое состояние в течение указанного интервала времени. (Унаследовано от CommunicationObject) |
| CreateDescription(IDictionary<String,ContractDescription>) |
При реализации в производном классе создает описание размещенной службы. |
| EndClose(IAsyncResult) |
Завершает асинхронную операцию закрытия объекта связи. (Унаследовано от CommunicationObject) |
| EndOpen(IAsyncResult) |
Завершает асинхронную операцию для открытия объекта связи. (Унаследовано от CommunicationObject) |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| Fault() |
Вызывает переход объекта связи из текущего состояния в состояние сбоя. (Унаследовано от CommunicationObject) |
| GetCommunicationObjectType() |
Возвращает тип объекта связи. (Унаследовано от CommunicationObject) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| IncrementManualFlowControlLimit(Int32) |
Увеличивает ограничение скорости потока сообщений в размещенную службу указанным шагом. |
| InitializeDescription(UriSchemeKeyedCollection) |
Создает и инициализирует узел службы с описанием контракта и службы. |
| InitializeRuntime() |
Инициализирует среду выполнения для узла службы. |
| LoadConfigurationSection(ServiceElement) |
Загружает элемент службы из файла конфигурации размещенной службы. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| OnAbort() |
Прерывает работу службы. |
| OnBeginClose(TimeSpan, AsyncCallback, Object) |
Начинает асинхронную операцию, вызванную при закрытии узла службы. |
| OnBeginOpen(TimeSpan, AsyncCallback, Object) |
Начинает асинхронную операцию, вызванную при открытии узла службы. |
| OnClose(TimeSpan) |
Закрывает размещенную службу, включая диспетчеры каналов и связанные контексты экземпляров и прослушиватели. |
| OnClosed() |
Освобождает ресурсы, используемые узлом службы. |
| OnClosed() |
Вызывается во время перехода объекта связи в закрываемое состояние. (Унаследовано от CommunicationObject) |
| OnClosing() |
Вызывается во время перехода объекта связи в закрываемое состояние. (Унаследовано от CommunicationObject) |
| OnEndClose(IAsyncResult) |
Завершает асинхронную операцию, вызванную при закрытии узла службы. |
| OnEndOpen(IAsyncResult) |
Завершает асинхронную операцию, вызванную при открытии узла службы. |
| OnFaulted() |
Вставляет обработку в объект связи после перехода в состояние сбоя из-за вызова синхронной операции сбоя. (Унаследовано от CommunicationObject) |
| OnOpen(TimeSpan) |
Открывает диспетчеры каналов. |
| OnOpened() |
Возвращает учетные данные службы, поведение проверки подлинности и авторизации службы для размещенной службы. |
| OnOpening() |
Вызывается во время перехода объекта связи в открываемое состояние. (Унаследовано от CommunicationObject) |
| Open() |
Вызывает переход объекта связи из созданного состояния в открытое состояние. (Унаследовано от CommunicationObject) |
| Open(TimeSpan) |
Вызывает переход объекта связи из созданного состояния в открытое состояние в течение указанного интервала времени. (Унаследовано от CommunicationObject) |
| ReleasePerformanceCounters() |
Освобождает счетчики производительности диспетчера служб и каналов для размещенной службы. |
| SetEndpointAddress(ServiceEndpoint, String) |
Задает адрес конечной точки указанной конечной точки указанным адресом. |
| ThrowIfDisposed() |
Создает исключение, если объект связи удаляется. (Унаследовано от CommunicationObject) |
| ThrowIfDisposedOrImmutable() |
Вызывает исключение, если объект State связи, который свойство не задано для Created состояния. (Унаследовано от CommunicationObject) |
| ThrowIfDisposedOrNotOpen() |
Создает исключение, если объект связи не находится в Opened состоянии. (Унаследовано от CommunicationObject) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
События
| Имя | Описание |
|---|---|
| Closed |
Происходит при переходе объекта связи в закрытое состояние. (Унаследовано от CommunicationObject) |
| Closing |
Происходит при переходе объекта связи в состояние закрытия. (Унаследовано от CommunicationObject) |
| Faulted |
Происходит при переходе объекта связи в состояние сбоя. (Унаследовано от CommunicationObject) |
| Opened |
Происходит при переходе объекта связи в открытое состояние. (Унаследовано от CommunicationObject) |
| Opening |
Происходит при переходе объекта связи в открытое состояние. (Унаследовано от CommunicationObject) |
| UnknownMessageReceived |
Происходит при получении неизвестного сообщения. |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IDisposable.Dispose() |
Закрывает узел службы. |