ServiceHostBase 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
클래스를 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)
- 상속
- 파생
- 구현
예제
이 샘플에서는 .에서 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 사용하여 사용자 지정 프로그래밍 모델을 제공하는 호스트를 만듭니다. WCF(Windows Communication Foundation) 서비스 프로그래밍 모델은 ServiceHost 클래스를 사용합니다.
이 클래스에서 파생되는 관리되는 C++ 사용자를 위한 특별 참고 사항:
- 소멸자가 아닌 (On)(Begin)Close(및/또는 OnAbort)에 정리 코드를 넣습니다.
- 소멸자를 방지합니다. 컴파일러가 자동으로 생성 IDisposable되도록 합니다.
- 참조가 아닌 멤버를 사용하지 않습니다. 컴파일러가 자동으로 생성 IDisposable될 수 있습니다.
- 종료자를 사용하지 않습니다. 그러나 하나를 포함하는 경우 빌드 경고를 표시하지 않고 자동 생성된 SuppressFinalize(Object) 동작을 에뮬레이트하려면 (On)(Begin)Close(및/또는 OnAbort)에서 빌드 경고 및 호출 IDisposable 및 종료자 자체를 표시하지 않아야 합니다.
생성자
| Name | Description |
|---|---|
| ServiceHostBase() |
ServiceHostBase 클래스의 새 인스턴스를 초기화합니다. |
속성
| Name | Description |
|---|---|
| Authentication |
서비스 인증 동작을 가져옵니다. |
| Authorization |
호스팅되는 서비스에 대한 권한 부여 동작을 가져옵니다. |
| BaseAddresses |
호스트된 서비스에서 사용하는 기본 주소를 가져옵니다. |
| ChannelDispatchers |
서비스 호스트에서 사용하는 채널 디스패처의 컬렉션을 가져옵니다. |
| CloseTimeout |
서비스 호스트가 닫을 수 있는 시간 간격을 가져오거나 설정합니다. |
| Credentials |
호스팅되는 서비스에 대한 자격 증명을 가져옵니다. |
| DefaultCloseTimeout |
서비스 호스트를 닫을 수 있는 기본 시간 간격을 가져옵니다. |
| DefaultOpenTimeout |
서비스 호스트가 열리는 데 허용되는 기본 시간 간격을 가져옵니다. |
| Description |
호스팅되는 서비스에 대한 설명을 가져옵니다. |
| Extensions |
현재 지정된 서비스 호스트의 확장을 가져옵니다. |
| ImplementedContracts |
호스팅되는 서비스에서 구현한 계약을 검색합니다. |
| IsDisposed |
통신 개체가 삭제되었는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 CommunicationObject) |
| ManualFlowControlLimit |
호스트된 서비스에서 받은 메시지에 대한 흐름 제어 제한을 가져오거나 설정합니다. |
| OpenTimeout |
서비스 호스트가 열리는 데 허용되는 시간 간격을 가져오거나 설정합니다. |
| State |
통신 개체의 현재 상태를 나타내는 값을 가져옵니다. (다음에서 상속됨 CommunicationObject) |
| ThisLock |
상태 전환 중에 클래스 인스턴스를 보호하는 상호 배타적 잠금을 가져옵니다. (다음에서 상속됨 CommunicationObject) |
메서드
| Name | Description |
|---|---|
| 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() |
통신 개체가 삭제되면 예외를 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 |
알 수 없는 메시지가 수신될 때 발생합니다. |
명시적 인터페이스 구현
| Name | Description |
|---|---|
| IDisposable.Dispose() |
서비스 호스트를 닫습니다. |