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 класс .
Особое примечание для пользователей управляемого кода C++, создающих классы, унаследованные от данного.
Поместите код очистки в блок (On)(Begin)Close (или OnAbort), а не в деструктор.
Избегайте использования деструкторов, поскольку они приводят к тому, что компилятор автоматически создает IDisposable.
Избегайте использования нессылочных членов, поскольку они приводят к тому, что компилятор автоматически создает IDisposable.
Избегайте использования методов завершения. При включении этого метода необходимо подавить предупреждение построения и вызвать SuppressFinalize(Object) и сам метод завершения из блока (On)(Begin)Close (или 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) |
Добавляет конечную точку службы в размещенную службу с указанными контрактом, привязкой и адресом конечной точки. |
AddServiceEndpoint(String, Binding, String, Uri) |
Добавляет конечную точку службы в размещенную службу с указанными контрактом, привязкой, адресом конечной точки и универсальным кодом ресурса (URI), содержащим адрес, по которому служба выполняет прослушивание. |
AddServiceEndpoint(String, Binding, Uri) |
Добавляет конечную точку службы в размещенную службу с указанными контрактом, привязкой и универсальным кодом ресурса (URI), содержащим адрес конечной точки. |
AddServiceEndpoint(String, Binding, Uri, Uri) |
Добавляет конечную точку службы в размещенную службу с указанными контрактом, привязкой и универсальными кодами ресурса (URI), содержащими адреса конечных точек и прослушивания. |
ApplyConfiguration() |
Загружает данные с описанием службы из файла конфигурации и применяет их к создаваемой среде выполнения. |
BeginClose(AsyncCallback, Object) |
Начинает асинхронную операцию закрытия объекта связи. (Унаследовано от CommunicationObject) |
BeginClose(TimeSpan, AsyncCallback, Object) |
Начинает асинхронную операцию закрытия объекта связи с заданным временем ожидания. (Унаследовано от CommunicationObject) |
BeginOpen(AsyncCallback, Object) |
Начинает асинхронную операцию открытия объекта связи. (Унаследовано от CommunicationObject) |
BeginOpen(TimeSpan, AsyncCallback, Object) |
Начинает асинхронную операцию открытия объекта связи в течение заданного интервала времени. (Унаследовано от CommunicationObject) |
Close() |
Вызывает переход объекта связи из текущего состояния в состояние Closed. (Унаследовано от CommunicationObject) |
Close(TimeSpan) |
Вызывает переход объекта связи из его текущего состояния в состояние Closed в течение заданного интервала времени. (Унаследовано от CommunicationObject) |
CreateDescription(IDictionary<String,ContractDescription>) |
При реализации в производном классе создает описание размещенной службы. |
EndClose(IAsyncResult) |
Завершает асинхронную операцию закрытия объекта связи. (Унаследовано от CommunicationObject) |
EndOpen(IAsyncResult) |
Завершает асинхронную операцию открытия объекта связи. (Унаследовано от CommunicationObject) |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Fault() |
Вызывает переход объекта связи из текущего состояния в состояние Faulted. (Унаследовано от 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() |
Вставляет операцию обработки объекта связи после перехода объекта в состояние Faulted в связи с вызовом синхронной операции ошибки. (Унаследовано от CommunicationObject) |
OnOpen(TimeSpan) |
Открывает диспетчеры каналов. |
OnOpened() |
Возвращает учетные данные службы, проверку подлинности службы и поведение авторизации для размещенной службы. |
OnOpening() |
Вызывается в процессе перехода объекта связи в состояние открытия. (Унаследовано от CommunicationObject) |
Open() |
Вызывает переход объекта связи из состояния Created в состояние Opened. (Унаследовано от CommunicationObject) |
Open(TimeSpan) |
Вызывает переход объекта связи из состояния Created в состояние Opened в течение заданного интервала времени. (Унаследовано от CommunicationObject) |
ReleasePerformanceCounters() |
Освобождает счетчики производительности диспетчера каналов и служб для размещенной службы. |
SetEndpointAddress(ServiceEndpoint, String) |
Задает в качестве адреса указанной конечной точки указанный адрес. |
ThrowIfDisposed() |
Вызывает исключение, если объект связи удален. (Унаследовано от CommunicationObject) |
ThrowIfDisposedOrImmutable() |
Создает исключение, если для свойства объекта связи State не установлено значение Created. (Унаследовано от CommunicationObject) |
ThrowIfDisposedOrNotOpen() |
Создает исключение, если объект связи не находится в состоянии Opened. (Унаследовано от CommunicationObject) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
События
Closed |
Происходит при переходе объекта связи в состояние Closed. (Унаследовано от CommunicationObject) |
Closing |
Происходит при переходе объекта связи в состояние закрытия. (Унаследовано от CommunicationObject) |
Faulted |
Происходит при переходе объекта связи в состояние Faulted. (Унаследовано от CommunicationObject) |
Opened |
Происходит при переходе объекта связи в состояние Opened. (Унаследовано от CommunicationObject) |
Opening |
Происходит при переходе объекта связи в состояние открытия. (Унаследовано от CommunicationObject) |
UnknownMessageReceived |
Происходит при получении неизвестного сообщения. |
Явные реализации интерфейса
IDisposable.Dispose() |
Закрывает узел службы. |