WebServiceHost Класс

Определение

Производный класс ServiceHost, который дополняет модель программирования REST Windows Communication Foundation (WCF).

public ref class WebServiceHost : System::ServiceModel::ServiceHost
public class WebServiceHost : System.ServiceModel.ServiceHost
type WebServiceHost = class
    inherit ServiceHost
Public Class WebServiceHost
Inherits ServiceHost
Наследование
Производный

Примеры

В следующем примере показано, как использовать WebServiceHost класс для размещения службы, которая использует модель программирования WCF REST.

[ServiceContract]
public interface ICalculator
{
    [OperationContract]
    [WebInvoke(UriTemplate = "add?x={x}&y={y}")]
    long Add(long x, long y);

    [OperationContract]
    [WebInvoke(UriTemplate = "sub?x={x}&y={y}")]
    long Subtract(long x, long y);

    [OperationContract]
    [WebInvoke(UriTemplate = "mult?x={x}&y={y}")]
    long Multiply(long x, long y);

    [OperationContract]
    [WebInvoke(UriTemplate = "div?x={x}&y={y}")]
    long Divide(long x, long y);

    [OperationContract]
    [WebGet(UriTemplate = "hello?name={name}")]
    string SayHello(string name);
}

public class CalcService : ICalculator
{
    public long Add(long x, long y)
    {
        return x + y;
    }

    public long Subtract(long x, long y)
    {
        return x - y;
    }

    public long Multiply(long x, long y)
    {
        return x * y;
    }

    public long Divide(long x, long y)
    {
        return x / y;
    }

    public string SayHello(string name)
    {
        return "Hello " + name;
    }
}

class Program
{
    static void Main(string[] args)
    {
        Uri baseAddress = new Uri("http://localhost:8000/");

        WebServiceHost svcHost = new WebServiceHost(typeof(CalcService), baseAddress);

        try
        {
            svcHost.Open();

            Console.WriteLine("Service is running");
            Console.WriteLine("Press enter to quit...");
            Console.ReadLine();

            svcHost.Close();
        }
        catch (CommunicationException cex)
        {
            Console.WriteLine("An exception occurred: {0}", cex.Message);
            svcHost.Abort();
        }
    }
}
<ServiceContract()> _
Public Interface ICalculator
    <OperationContract()> _
    <WebInvoke(UriTemplate:="add?x={x}&y={y}")> _
    Function Add(ByVal x As Long, ByVal y As Long) As Long

    <OperationContract()> _
    <WebInvoke(UriTemplate:="sub?x={x}&y={y}")> _
    Function Subtract(ByVal x As Long, ByVal y As Long) As Long

    <OperationContract()> _
    <WebInvoke(UriTemplate:="mult?x={x}&y={y}")> _
    Function Multiply(ByVal x As Long, ByVal y As Long) As Long

    <OperationContract()> _
    <WebInvoke(UriTemplate:="div?x={x}&y={y}")> _
    Function Divide(ByVal x As Long, ByVal y As Long) As Long

    <OperationContract()> _
    <WebGet(UriTemplate:="hello?name={name}")> _
    Function SayHello(ByVal name As String) As String
End Interface

Public Class CalcService
    Implements ICalculator
    Public Function Add(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Add
        Return x + y
    End Function

    Public Function Subtract(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Subtract
        Return x - y
    End Function

    Public Function Multiply(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Multiply
        Return x * y
    End Function

    Public Function Divide(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Divide
        Return x / y
    End Function

    Public Function SayHello(ByVal name As String) As String Implements ICalculator.SayHello
        Return "Hello " + name
    End Function
End Class

Комментарии

Если WebServiceHost в описании службы не найдены конечные точки, она автоматически создает конечную точку по умолчанию в базовом адресе службы для базовых адресов HTTP и HTTPS. Он не создает конечную точку автоматически, если пользователь явно настроил конечную точку на базовом адресе. WebServiceHost автоматически настраивает привязку конечной точки для работы с связанными параметрами безопасности Internet Information Services (IIS) при использовании в защищенном виртуальном каталоге.

Также при создании HTTP конечной точки по умолчанию отключаются страница справки HTTP и функциональность GET языка описания веб-служб (WSDL), чтобы конечная точка метаданных не мешала работе HTTP конечной точки по умолчанию.

Кроме того, WebServiceHost класс добавляет WebHttpBehavior все конечные точки, которые еще не имеют поведения и имеют .WebMessageEncodingElement Если все операции со службой имеют пустые тела HTTP-запросов или занимаются текстом HTTP-запроса в виде потока, то WebServiceHost автоматически настраивает соответствующую схему типов контента для привязки.

Конструкторы

Имя Описание
WebServiceHost()

Инициализирует новый экземпляр класса WebServiceHost.

WebServiceHost(Object, Uri[])

Инициализирует новый экземпляр WebServiceHost класса с указанным экземпляром одноэлементного сервера и базовым адресом.

WebServiceHost(Type, Uri[])

Инициализирует новый экземпляр WebServiceHost класса с указанным типом службы и базовым адресом.

Свойства

Имя Описание
Authentication

Возвращает поведение проверки подлинности службы.

(Унаследовано от ServiceHostBase)
Authorization

Возвращает поведение авторизации для размещенной службы.

(Унаследовано от ServiceHostBase)
BaseAddresses

Возвращает базовые адреса, используемые размещенной службой.

(Унаследовано от ServiceHostBase)
ChannelDispatchers

Возвращает коллекцию диспетчеров каналов, используемых узлом службы.

(Унаследовано от ServiceHostBase)
CloseTimeout

Возвращает или задает интервал времени, разрешенный для закрытия узла службы.

(Унаследовано от ServiceHostBase)
Credentials

Возвращает учетные данные для размещенной службы.

(Унаследовано от ServiceHostBase)
DefaultCloseTimeout

Возвращает интервал времени по умолчанию, разрешенный для закрытия узла службы.

(Унаследовано от ServiceHostBase)
DefaultOpenTimeout

Возвращает интервал времени по умолчанию, разрешенный для открытия узла службы.

(Унаследовано от ServiceHostBase)
Description

Возвращает описание размещенной службы.

(Унаследовано от ServiceHostBase)
Extensions

Возвращает расширения для текущего указанного узла службы.

(Унаследовано от ServiceHostBase)
ImplementedContracts

Извлекает контракты, реализованные размещенной службой.

(Унаследовано от ServiceHostBase)
IsDisposed

Возвращает значение, указывающее, был ли удален объект связи.

(Унаследовано от CommunicationObject)
ManualFlowControlLimit

Возвращает или задает ограничение управления потоком для сообщений, полученных размещенной службой.

(Унаследовано от ServiceHostBase)
OpenTimeout

Возвращает или задает интервал времени, разрешенный для открытия узла службы.

(Унаследовано от ServiceHostBase)
SingletonInstance

Возвращает одноэлементный экземпляр размещенной службы.

(Унаследовано от ServiceHost)
State

Возвращает значение, указывающее текущее состояние объекта связи.

(Унаследовано от CommunicationObject)
ThisLock

Получает взаимоисключающую блокировку, которая защищает экземпляр класса во время перехода состояния.

(Унаследовано от CommunicationObject)

Методы

Имя Описание
Abort()

Вызывает немедленное переход объекта связи из текущего состояния в закрывающемся состоянии.

(Унаследовано от CommunicationObject)
AddBaseAddress(Uri)

Добавляет базовый адрес в узел службы.

(Унаследовано от ServiceHostBase)
AddDefaultEndpoints()

Добавляет конечные точки службы для всех базовых адресов в каждом контракте, найденном в узле службы, с привязкой по умолчанию.

(Унаследовано от ServiceHostBase)
AddServiceEndpoint(ServiceEndpoint)

Добавляет указанную конечную точку службы в размещенную службу.

(Унаследовано от ServiceHostBase)
AddServiceEndpoint(String, Binding, String, Uri)

Добавляет конечную точку службы в размещенную службу с указанным контрактом, привязкой, адресом конечной точки и универсальным кодом ресурса (URI), содержащим адрес, по которому он прослушивает.

(Унаследовано от ServiceHostBase)
AddServiceEndpoint(String, Binding, String)

Добавляет конечную точку службы в размещенную службу с указанным контрактом, привязкой и адресом конечной точки.

(Унаследовано от ServiceHostBase)
AddServiceEndpoint(String, Binding, Uri, Uri)

Добавляет конечную точку службы в размещенную службу с указанным контрактом, привязкой и URI, содержащими конечную точку и адреса прослушивания.

(Унаследовано от ServiceHostBase)
AddServiceEndpoint(String, Binding, Uri)

Добавляет конечную точку службы в размещенную службу с указанным контрактом, привязкой и универсальным кодом ресурса (URI), содержащим адрес конечной точки.

(Унаследовано от ServiceHostBase)
AddServiceEndpoint(Type, Binding, String, Uri)

Добавляет конечную точку службы в размещенную службу с указанным контрактом, привязкой, адресом конечной точки и универсальным кодом ресурса (URI), в котором служба прослушивает.

(Унаследовано от ServiceHost)
AddServiceEndpoint(Type, Binding, String)

Добавляет конечную точку службы в размещенную службу с указанным контрактом, привязкой и адресом конечной точки.

(Унаследовано от ServiceHost)
AddServiceEndpoint(Type, Binding, Uri, Uri)

Добавляет конечную точку службы в размещенную службу с указанным контрактом, привязкой, универсальным кодом ресурса (URI), содержащим адрес конечной точки, и универсальным кодом ресурса (URI), на котором прослушивается служба.

(Унаследовано от ServiceHost)
AddServiceEndpoint(Type, Binding, Uri)

Добавляет конечную точку службы в размещенную службу с указанным контрактом, привязкой и универсальным кодом ресурса (URI), содержащим адрес конечной точки.

(Унаследовано от ServiceHost)
ApplyConfiguration()

Загружает описание службы из файла конфигурации и применяет его к созданной среде выполнения.

(Унаследовано от ServiceHost)
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>)

Создает описание размещенной службы.

(Унаследовано от ServiceHost)
EndClose(IAsyncResult)

Завершает асинхронную операцию закрытия объекта связи.

(Унаследовано от CommunicationObject)
EndOpen(IAsyncResult)

Завершает асинхронную операцию для открытия объекта связи.

(Унаследовано от CommunicationObject)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Fault()

Вызывает переход объекта связи из текущего состояния в состояние сбоя.

(Унаследовано от CommunicationObject)
GetCommunicationObjectType()

Возвращает тип объекта связи.

(Унаследовано от CommunicationObject)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
IncrementManualFlowControlLimit(Int32)

Увеличивает ограничение скорости потока сообщений в размещенную службу указанным шагом.

(Унаследовано от ServiceHostBase)
InitializeDescription(Object, UriSchemeKeyedCollection)

Инициализирует описание службы, размещенной на основе его экземпляра и указанных базовых адресов.

(Унаследовано от ServiceHost)
InitializeDescription(Type, UriSchemeKeyedCollection)

Инициализирует описание службы, размещенной на основе его типа и заданных базовых адресов.

(Унаследовано от ServiceHost)
InitializeDescription(UriSchemeKeyedCollection)

Создает и инициализирует узел службы с описанием контракта и службы.

(Унаследовано от ServiceHostBase)
InitializeRuntime()

Инициализирует среду выполнения для узла службы.

(Унаследовано от ServiceHostBase)
LoadConfigurationSection(ServiceElement)

Загружает элемент службы из файла конфигурации размещенной службы.

(Унаследовано от ServiceHostBase)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
OnAbort()

Прерывает работу службы.

(Унаследовано от ServiceHostBase)
OnBeginClose(TimeSpan, AsyncCallback, Object)

Начинает асинхронную операцию, вызванную при закрытии узла службы.

(Унаследовано от ServiceHostBase)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

Начинает асинхронную операцию, вызванную при открытии узла службы.

(Унаследовано от ServiceHostBase)
OnClose(TimeSpan)

Закрывает размещенную службу, включая диспетчеры каналов и связанные контексты экземпляров и прослушиватели.

(Унаследовано от ServiceHostBase)
OnClosed()

Удаляет удаленные службы, размещенные при закрытии узла службы.

(Унаследовано от ServiceHost)
OnClosing()

Вызывается во время перехода объекта связи в закрываемое состояние.

(Унаследовано от CommunicationObject)
OnEndClose(IAsyncResult)

Завершает асинхронную операцию, вызванную при закрытии узла службы.

(Унаследовано от ServiceHostBase)
OnEndOpen(IAsyncResult)

Завершает асинхронную операцию, вызванную при открытии узла службы.

(Унаследовано от ServiceHostBase)
OnFaulted()

Вставляет обработку в объект связи после перехода в состояние сбоя из-за вызова синхронной операции сбоя.

(Унаследовано от CommunicationObject)
OnOpen(TimeSpan)

Открывает диспетчеры каналов.

(Унаследовано от ServiceHostBase)
OnOpened()

Возвращает учетные данные службы, поведение проверки подлинности и авторизации службы для размещенной службы.

(Унаследовано от ServiceHostBase)
OnOpening()

Вызывается при открытии экземпляра WebServiceHost .

Open()

Вызывает переход объекта связи из созданного состояния в открытое состояние.

(Унаследовано от CommunicationObject)
Open(TimeSpan)

Вызывает переход объекта связи из созданного состояния в открытое состояние в течение указанного интервала времени.

(Унаследовано от CommunicationObject)
ReleasePerformanceCounters()

Освобождает счетчики производительности диспетчера служб и каналов для размещенной службы.

(Унаследовано от ServiceHostBase)
SetEndpointAddress(ServiceEndpoint, String)

Задает адрес конечной точки указанной конечной точки указанным адресом.

(Унаследовано от ServiceHostBase)
ThrowIfDisposed()

Создает исключение, если объект связи удаляется.

(Унаследовано от CommunicationObject)
ThrowIfDisposedOrImmutable()

Вызывает исключение, если объект State связи, который свойство не задано для Created состояния.

(Унаследовано от CommunicationObject)
ThrowIfDisposedOrNotOpen()

Создает исключение, если объект связи не находится в Opened состоянии.

(Унаследовано от CommunicationObject)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

События

Имя Описание
Closed

Происходит при переходе объекта связи в закрытое состояние.

(Унаследовано от CommunicationObject)
Closing

Происходит при переходе объекта связи в состояние закрытия.

(Унаследовано от CommunicationObject)
Faulted

Происходит при переходе объекта связи в состояние сбоя.

(Унаследовано от CommunicationObject)
Opened

Происходит при переходе объекта связи в открытое состояние.

(Унаследовано от CommunicationObject)
Opening

Происходит при переходе объекта связи в открытое состояние.

(Унаследовано от CommunicationObject)
UnknownMessageReceived

Происходит при получении неизвестного сообщения.

(Унаследовано от ServiceHostBase)

Явные реализации интерфейса

Имя Описание
IDisposable.Dispose()

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

(Унаследовано от ServiceHostBase)

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