WebServiceHost 클래스

정의

WCF(Windows Communication Foundation) REST 프로그래밍 모델을 보완하는 ServiceHost 파생 클래스입니다.

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 엔드포인트 WebServiceHost 를 방해하지 않도록 HTTP 도움말 페이지와 WSDL(Web Services Description Language) GET 기능도 사용하지 않도록 설정합니다.

또한 클래스 WebServiceHostWebHttpBehavior 동작이 아직 없는 모든 엔드포인트에 추가합니다.WebMessageEncodingElement 서비스의 모든 작업에 빈 HTTP 요청 본문이 있거나 HTTP 요청 본문을 스트림 WebServiceHost 으로 처리하는 경우 바인딩에 적절한 콘텐츠 형식 매퍼가 자동으로 구성됩니다.

생성자

Name Description
WebServiceHost()

WebServiceHost 클래스의 새 인스턴스를 초기화합니다.

WebServiceHost(Object, Uri[])

지정된 싱글톤 서버 인스턴스 및 기본 주소를 사용하여 클래스의 WebServiceHost 새 인스턴스를 초기화합니다.

WebServiceHost(Type, Uri[])

지정된 서비스 유형 및 기본 주소를 사용하여 클래스의 WebServiceHost 새 인스턴스를 초기화합니다.

속성

Name Description
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)

메서드

Name Description
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()

통신 개체가 삭제되면 예외를 throw합니다.

(다음에서 상속됨 CommunicationObject)
ThrowIfDisposedOrImmutable()

속성이 상태로 설정되지 않은 통신 개체인 State 경우 예외를 Created throw합니다.

(다음에서 상속됨 CommunicationObject)
ThrowIfDisposedOrNotOpen()

통신 개체가 상태가 아닌 경우 예외를 Opened throw합니다.

(다음에서 상속됨 CommunicationObject)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

이벤트

Name Description
Closed

통신 개체가 닫힌 상태로 전환할 때 발생합니다.

(다음에서 상속됨 CommunicationObject)
Closing

통신 개체가 닫는 상태로 전환할 때 발생합니다.

(다음에서 상속됨 CommunicationObject)
Faulted

통신 개체가 오류 상태로 전환될 때 발생합니다.

(다음에서 상속됨 CommunicationObject)
Opened

통신 개체가 열린 상태로 전환될 때 발생합니다.

(다음에서 상속됨 CommunicationObject)
Opening

통신 개체가 여는 상태로 전환할 때 발생합니다.

(다음에서 상속됨 CommunicationObject)
UnknownMessageReceived

알 수 없는 메시지가 수신될 때 발생합니다.

(다음에서 상속됨 ServiceHostBase)

명시적 인터페이스 구현

Name Description
IDisposable.Dispose()

서비스 호스트를 닫습니다.

(다음에서 상속됨 ServiceHostBase)

적용 대상