WCF : Servicehost는 무엇입니까?
-
03-07-2019 - |
문제
현재 WCF 서비스를 사용하는 법을 배우면서 인터넷에서 끊임없이 튜토리얼을 만나고 있습니다. ServiceHost
WCF 서비스를 사용할 때.
이게 뭐야 ServiceHost
?
내 현재 프로젝트에서 나는 WCF 서비스를 사용하고 있으며 앱에서 참조를 가지고 있으며 앱에서 소비하고 싶을 때마다 인스턴스화합니다. ServiceClient
그런 식으로 :
new MusicRepo_DBAccess_ServiceClient(new InstanceContext(instanceContext), customBinding, endpointAddress);
그런 다음 내 웹 방법에 액세스합니다 (OperationContract
s) 해당 인스턴스에서 (메소드를 소비하고 나중에 닫기 전에 열기 Open
그리고 Close
)
내 WCF 서비스는 내 IIS에서 호스트이며 .svc
내 앱에서 인스턴스화합니다 ServiceClient
.
그래서 왜 그리고 어디에 있는지 ServiceHost
사용된?
해결책
ServiceHost는 기본적으로 비 IIS 또는 설정중인 WCF 서비스를 호스팅하는 데 필요한 모든 것을 제공합니다. ServiceHost의 일반적인 장소는 콘솔 앱 또는 Windows 서비스에 있습니다. MSDN의 예제 코드를 참조하십시오 콘솔 앱에서 ServiceHost를 설정하는 방법.
다른 팁
서비스 구현은 .NET 클래스 일뿐입니다. 런타임 환경이 있어야하므로 어떻게 든 실행할 수 있습니다. 이것이 바로 ServiceHost의 것입니다. 서비스 클래스를로드하고 엔드 포인트 및 채널 리스너 및 모든 것들을 설정하여 서비스 클래스에 "생태계"를 제공하고 운영 할 수 있습니다.
콘솔 앱, Windows 서비스 또는 WinForms 앱에서 ServiceHost 클래스를 직접 인스턴스화하여 WCF 서비스 클래스를 외부 세계에 사용할 수있게하거나 IIS 또는 그랬던 것을 위임 할 수 있습니다. IIS조차도 ServiceHost를 사용하여 WCF 서비스를 호스팅합니다. WCF 서비스에 대한 요청이 들어올 때마다 자동으로 자동으로 수행하고 "주문형"입니다.
마크