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)
Наследование
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()

Закрывает узел службы.

Применяется к