ServiceHostBase 클래스

정의

ServiceHostBase 클래스를 확장하여 사용자 지정 프로그래밍 모델을 노출하는 호스트를 구현합니다.Extends the ServiceHostBase class to implement hosts that expose custom programming models.

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 클래스를 사용합니다.This sample uses the ServiceHost class, which is derived from 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 클래스를 사용합니다.Use the ServiceHostBase class to create hosts that provide a custom programming model. 프로그래밍 모델에서는 Windows Communication Foundation (WCF) 서비스는 ServiceHost 클래스입니다.The Windows Communication Foundation (WCF) service programming model uses the ServiceHost class.

이 클래스에서 파생된 Managed C++ 사용자 관련 참고 사항:Special note for Managed C++ users deriving from this class:

  • 소멸자가 아니라 (On)(Begin)Close 및/또는 OnAbort에 정리 코드를 입력하십시오.Put your cleanup code in (On)(Begin)Close (and/or OnAbort), not in a destructor.

  • 소멸자를 사용하지 마십시오. 소멸자를 사용하면 컴파일러에서 IDisposable을 자동으로 생성할 수 있습니다.Avoid destructors; they cause the compiler to auto-generate IDisposable.

  • 비참조 멤버를 사용하지 마십시오. 비참조 멤버를 사용하면 컴파일러에서 IDisposable을 자동으로 생성할 수 있습니다.Avoid non-reference members; they can cause the compiler to auto-generate IDisposable.

  • 종료자를 사용하지 마십시오. 그러나 종료자를 포함하는 경우 자동으로 생성되는 SuppressFinalize(Object) 동작을 에뮬레이트하기 위해 빌드 경고를 표시하지 않고 (On)(Begin)Close 및/또는 OnAbort에서 IDisposable 및 해당 종료자를 호출해야 합니다.Avoid finalizers; but if you include one, you should suppress the build warning and call SuppressFinalize(Object) and the finalizer itself from (On)(Begin)Close (and/or OnAbort) to emulate what would have been the auto-generated IDisposable behavior.

생성자

ServiceHostBase()

ServiceHostBase 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ServiceHostBase class.

속성

Authentication

서비스 인증 동작을 가져옵니다.Gets the service authentication behavior.

Authorization

호스팅된 서비스에 대한 인증 동작을 가져옵니다.Gets the authorization behavior for the service hosted.

BaseAddresses

호스팅된 서비스에서 사용하는 기본 주소를 가져옵니다.Gets the base addresses used by the hosted service.

ChannelDispatchers

서비스 호스트에서 사용하는 채널 디스패처 컬렉션을 가져옵니다.Gets the collection of channel dispatchers used by the service host.

CloseTimeout

서비스 호스트를 닫는 데 허용되는 시간 간격을 가져오거나 설정합니다.Gets or sets the interval of time allowed for the service host to close.

Credentials

호스팅된 서비스에 대한 자격 증명을 가져옵니다.Gets the credential for the service hosted.

DefaultCloseTimeout

서비스 호스트를 닫는 데 허용되는 기본 시간 간격을 가져옵니다.Gets the default interval of time allowed for the service host to close.

DefaultOpenTimeout

서비스 호스트를 여는 데 허용되는 기본 시간 간격을 가져옵니다.Gets the default interval of time allowed for the service host to open.

Description

호스팅된 서비스에 대한 설명을 가져옵니다.Gets the description of the service hosted.

Extensions

현재 지정된 서비스 호스트의 확장을 가져옵니다.Gets the extensions for the current specified service host.

ImplementedContracts

호스팅된 서비스에서 구현하는 계약을 검색합니다.Retrieves the contracts implemented by the service hosted.

IsDisposed

통신 개체가 삭제되었는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the communication object has been disposed.

(다음에서 상속됨 CommunicationObject)
ManualFlowControlLimit

호스팅된 서비스에서 수신하는 메시지의 흐름 제어 한도를 가져오거나 설정합니다.Gets or sets the flow control limit for messages received by the service hosted.

OpenTimeout

서비스 호스트를 여는 데 허용되는 시간 간격을 가져오거나 설정합니다.Gets or sets the interval of time allowed for the service host to open.

State

통신 개체의 현재 상태를 나타내는 값을 가져옵니다.Gets a value that indicates the current state of the communication object.

(다음에서 상속됨 CommunicationObject)
ThisLock

상태 전환 중에 클래스 인스턴스를 보호하는 상호 배타적인 전용 잠금을 가져옵니다.Gets the mutually exclusive lock that protects the class instance during a state transition.

(다음에서 상속됨 CommunicationObject)

메서드

Abort()

통신 개체가 현재 상태에서 Closing 상태로 즉시 전환되도록 합니다.Causes a communication object to transition immediately from its current state into the closing state.

(다음에서 상속됨 CommunicationObject)
AddBaseAddress(Uri)

서비스 호스트에 기본 주소를 추가합니다.Adds a base address to the service host.

AddDefaultEndpoints()

기본 바인딩을 사용하는 서비스 호스트에 있는 각 계약에서 모든 기본 주소에 대한 서비스 엔드포인트를 추가합니다.Adds service endpoints for all base addresses in each contract found in the service host with the default binding.

AddServiceEndpoint(ServiceEndpoint)

지정된 서비스 엔드포인트를 호스팅된 서비스에 추가합니다.Adds the specified service endpoint to the hosted service.

AddServiceEndpoint(String, Binding, String)

지정된 계약, 바인딩, 엔드포인트 주소를 사용하여 서비스 엔드포인트를 호스팅된 서비스에 추가합니다.Adds a service endpoint to the hosted service with a specified contract, binding, and endpoint address.

AddServiceEndpoint(String, Binding, String, Uri)

지정된 계약, 바인딩, 엔드포인트 주소 및 수신 주소가 포함된 URI를 사용하여 서비스 엔드포인트를 호스팅된 서비스에 추가합니다.Adds a service endpoint to the hosted service with a specified contract, binding, endpoint address and URI that contains the address at which it listens.

AddServiceEndpoint(String, Binding, Uri)

지정된 계약, 바인딩 및 엔드포인트 주소가 포함된 URI를 사용하여 서비스 엔드포인트를 호스팅된 서비스에 추가합니다.Adds a service endpoint to the hosted service with a specified contract, binding, and a URI that contains the endpoint address.

AddServiceEndpoint(String, Binding, Uri, Uri)

지정된 계약, 바인딩, 엔드포인트와 수신 주소가 포함된 URI를 사용하여 서비스 엔드포인트를 호스팅된 서비스에 추가합니다.Adds a service endpoint to the hosted service with the specified contract, binding, and URIs that contain the endpoint and listening addresses.

ApplyConfiguration()

구성 파일에서 서비스 설명 정보를 로드하고 이 정보를 생성 중인 런타임에 적용합니다.Loads the service description information from the configuration file and applies it to the runtime being constructed.

BeginClose(AsyncCallback, Object)

통신 개체를 닫기 위한 비동기 작업을 시작합니다.Begins an asynchronous operation to close a communication object.

(다음에서 상속됨 CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

지정된 제한 시간 내에서 통신 개체를 닫기 위한 비동기 작업을 시작합니다.Begins an asynchronous operation to close a communication object with a specified timeout.

(다음에서 상속됨 CommunicationObject)
BeginOpen(AsyncCallback, Object)

통신 개체를 열기 위한 비동기 작업을 시작합니다.Begins an asynchronous operation to open a communication object.

(다음에서 상속됨 CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

지정된 시간 간격 내에서 통신 개체를 열기 위한 비동기 작업을 시작합니다.Begins an asynchronous operation to open a communication object within a specified interval of time.

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

통신 개체가 현재 상태에서 Closed 상태로 전환되도록 합니다.Causes a communication object to transition from its current state into the closed state.

(다음에서 상속됨 CommunicationObject)
Close(TimeSpan)

통신 개체가 지정된 시간 간격 내에 현재 상태에서 Closed 상태로 전환되도록 합니다.Causes a communication object to transition from its current state into the closed state within a specified interval of time.

(다음에서 상속됨 CommunicationObject)
CreateDescription(IDictionary<String,ContractDescription>)

파생 클래스에서 구현되는 경우 호스팅된 서비스에 대한 설명을 만듭니다.When implemented in a derived class, creates the description of the hosted service.

EndClose(IAsyncResult)

통신 개체를 닫기 위한 비동기 작업을 완료합니다.Completes an asynchronous operation to close a communication object.

(다음에서 상속됨 CommunicationObject)
EndOpen(IAsyncResult)

통신 개체를 열기 위한 비동기 작업을 완료합니다.Completes an asynchronous operation to open a communication object.

(다음에서 상속됨 CommunicationObject)
Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
Fault()

통신 개체가 현재 상태에서 Faulted 상태로 전환되도록 합니다.Causes a communication object to transition from its current state into the faulted state.

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

통신 개체의 형식을 가져옵니다.Gets the type of communication object.

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

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
IncrementManualFlowControlLimit(Int32)

호스팅된 서비스로 이동하는 메시지 흐름 속도 한도를 지정된 증분만큼 늘립니다.Increases the limit on the flow rate of messages to the hosted service by a specified increment.

InitializeDescription(UriSchemeKeyedCollection)

계약 및 서비스 설명을 사용하여 서비스 호스트를 만들고 초기화합니다.Creates and initializes the service host with the contract and service descriptions.

InitializeRuntime()

서비스 호스트의 런타임을 초기화합니다.Initializes the runtime for the service host.

LoadConfigurationSection(ServiceElement)

호스팅된 서비스의 구성 파일에서 서비스 요소를 로드합니다.Loads the service element from the configuration file of the hosted service.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
OnAbort()

서비스를 중단합니다.Aborts the service.

OnBeginClose(TimeSpan, AsyncCallback, Object)

서비스 호스트를 닫았을 때 호출되는 비동기 작업을 시작합니다.Begins an asynchronous operation invoked on the close of the service host.

OnBeginOpen(TimeSpan, AsyncCallback, Object)

서비스 호스트를 열었을 때 호출되는 비동기 작업을 시작합니다.Begins an asynchronous operation invoked on the opening of the service host.

OnClose(TimeSpan)

채널 디스패처 및 연결된 인스턴스 컨텍스트 및 수신기를 포함하여 호스팅된 서비스를 닫습니다.Closes down the hosted service, including their channel dispatchers and associated instance contexts and listeners.

OnClosed()

서비스 호스트에서 사용하는 리소스를 해제합니다.Releases resources used by the service host.

OnClosing()

통신 개체가 Closing 상태로 전환되는 중에 호출됩니다.Invoked during the transition of a communication object into the closing state.

(다음에서 상속됨 CommunicationObject)
OnEndClose(IAsyncResult)

서비스 호스트를 닫았을 때 호출되는 비동기 작업을 완료합니다.Completes an asynchronous operation invoked on the closing of the service host.

OnEndOpen(IAsyncResult)

서비스 호스트를 열었을 때 호출되는 비동기 작업을 완료합니다.Completes an asynchronous operation invoked on the opening of the service host.

OnFaulted()

통신 개체가 동기 오류 작업의 호출로 인해 Faulted 상태로 전환된 후 해당 통신 개체에 대한 처리를 삽입합니다.Inserts processing on a communication object after it transitions to the faulted state due to the invocation of a synchronous fault operation.

(다음에서 상속됨 CommunicationObject)
OnOpen(TimeSpan)

채널 디스패처를 엽니다.Opens the channel dispatchers.

OnOpened()

호스팅된 서비스의 서비스 자격 증명, 서비스 인증 및 서비스 인증 동작을 가져옵니다.Gets the service credentials,service authentication and authorization behavior for the hosted service.

OnOpening()

통신 개체가 Opening 상태로 전환되는 중에 호출됩니다.Invoked during the transition of a communication object into the opening state.

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

통신 개체가 Created 상태에서 Opened 상태로 전환되도록 합니다.Causes a communication object to transition from the created state into the opened state.

(다음에서 상속됨 CommunicationObject)
Open(TimeSpan)

통신 개체가 지정된 시간 간격 내에 Created 상태에서 Opened 상태로 전환되도록 합니다.Causes a communication object to transition from the created state into the opened state within a specified interval of time.

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

호스팅된 서비스의 서비스 및 채널 디스패처 성능 카운터를 해제합니다.Releases the service and channel dispatcher performance counters for the hosted service.

SetEndpointAddress(ServiceEndpoint, String)

지정된 엔드포인트의 엔드포인트 주소를 지정된 주소로 설정합니다.Sets the endpoint address of the specified endpoint to the specified address.

ThrowIfDisposed()

통신 개체가 삭제되면 예외를 throw합니다.Throws an exception if the communication object is disposed.

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

통신 개체의 State 속성이 Created 상태로 설정되지 않은 경우 예외를 throw합니다.Throws an exception if the communication object the State property is not set to the Created state.

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

통신 개체가 Opened 상태가 아니면 예외를 throw합니다.Throws an exception if the communication object is not in the Opened state.

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

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

이벤트

Closed

통신 개체가 Closed 상태로 전환될 때 발생합니다.Occurs when a communication object transitions into the closed state.

(다음에서 상속됨 CommunicationObject)
Closing

통신 개체가 Closing 상태로 전환될 때 발생합니다.Occurs when a communication object transitions into the closing state.

(다음에서 상속됨 CommunicationObject)
Faulted

통신 개체가 Faulted 상태로 전환될 때 발생합니다.Occurs when a communication object transitions into the faulted state.

(다음에서 상속됨 CommunicationObject)
Opened

통신 개체가 Opened 상태로 전환될 때 발생합니다.Occurs when a communication object transitions into the opened state.

(다음에서 상속됨 CommunicationObject)
Opening

통신 개체가 Opening 상태로 전환될 때 발생합니다.Occurs when a communication object transitions into the opening state.

(다음에서 상속됨 CommunicationObject)
UnknownMessageReceived

알 수 없는 메시지를 수신할 때 발생합니다.Occurs when an unknown message is received.

명시적 인터페이스 구현

IDisposable.Dispose()

서비스 호스트를 닫습니다.Closes the service host.

적용 대상