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 класс для размещения службы, которая использует модель программирования REST WCF.
[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 автоматически настраивает привязку конечной точки для работы со связанными параметрами безопасности служб IIS при использовании в защищенном виртуальном каталоге.
При создании конечной точки HTTP по умолчанию WebServiceHost также отключает страницу справки 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) |
Добавляет конечную точку службы в размещенную службу с указанными контрактом, привязкой и адресом конечной точки. (Унаследовано от ServiceHostBase) |
AddServiceEndpoint(String, Binding, String, Uri) |
Добавляет конечную точку службы в размещенную службу с указанными контрактом, привязкой, адресом конечной точки и универсальным кодом ресурса (URI), содержащим адрес, по которому служба выполняет прослушивание. (Унаследовано от ServiceHostBase) |
AddServiceEndpoint(String, Binding, Uri) |
Добавляет конечную точку службы в размещенную службу с указанными контрактом, привязкой и универсальным кодом ресурса (URI), содержащим адрес конечной точки. (Унаследовано от ServiceHostBase) |
AddServiceEndpoint(String, Binding, Uri, Uri) |
Добавляет конечную точку службы в размещенную службу с указанными контрактом, привязкой и универсальными кодами ресурса (URI), содержащими адреса конечных точек и прослушивания. (Унаследовано от ServiceHostBase) |
AddServiceEndpoint(Type, Binding, String) |
Добавляет конечную точку службы в размещенную службу с указанными контрактом, привязкой и адресом конечной точки. (Унаследовано от ServiceHost) |
AddServiceEndpoint(Type, Binding, String, Uri) |
Добавляет конечную точку службы в размещенную службу с указанными контрактом, привязкой, адресом конечной точки и универсальным кодом ресурса, по которому служба выполняет прослушивание. (Унаследовано от ServiceHost) |
AddServiceEndpoint(Type, Binding, 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() |
Вызывает переход объекта связи из текущего состояния в состояние Closed. (Унаследовано от CommunicationObject) |
Close(TimeSpan) |
Вызывает переход объекта связи из его текущего состояния в состояние Closed в течение заданного интервала времени. (Унаследовано от CommunicationObject) |
CreateDescription(IDictionary<String,ContractDescription>) |
Создает описание размещенной службы. (Унаследовано от ServiceHost) |
EndClose(IAsyncResult) |
Завершает асинхронную операцию закрытия объекта связи. (Унаследовано от CommunicationObject) |
EndOpen(IAsyncResult) |
Завершает асинхронную операцию открытия объекта связи. (Унаследовано от CommunicationObject) |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Fault() |
Вызывает переход объекта связи из текущего состояния в состояние Faulted. (Унаследовано от 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() |
Вставляет операцию обработки объекта связи после перехода объекта в состояние Faulted в связи с вызовом синхронной операции ошибки. (Унаследовано от CommunicationObject) |
OnOpen(TimeSpan) |
Открывает диспетчеры каналов. (Унаследовано от ServiceHostBase) |
OnOpened() |
Возвращает учетные данные службы, проверку подлинности службы и поведение авторизации для размещенной службы. (Унаследовано от ServiceHostBase) |
OnOpening() |
Вызывается при открытии экземпляра WebServiceHost. |
Open() |
Вызывает переход объекта связи из состояния Created в состояние Opened. (Унаследовано от CommunicationObject) |
Open(TimeSpan) |
Вызывает переход объекта связи из состояния Created в состояние Opened в течение заданного интервала времени. (Унаследовано от CommunicationObject) |
ReleasePerformanceCounters() |
Освобождает счетчики производительности диспетчера каналов и служб для размещенной службы. (Унаследовано от ServiceHostBase) |
SetEndpointAddress(ServiceEndpoint, String) |
Задает в качестве адреса указанной конечной точки указанный адрес. (Унаследовано от ServiceHostBase) |
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 |
Происходит при получении неизвестного сообщения. (Унаследовано от ServiceHostBase) |
Явные реализации интерфейса
IDisposable.Dispose() |
Закрывает узел службы. (Унаследовано от ServiceHostBase) |