문제

현재 WCF 서비스를 사용하는 법을 배우면서 인터넷에서 끊임없이 튜토리얼을 만나고 있습니다. ServiceHost WCF 서비스를 사용할 때.

이게 뭐야 ServiceHost ?


내 현재 프로젝트에서 나는 WCF 서비스를 사용하고 있으며 앱에서 참조를 가지고 있으며 앱에서 소비하고 싶을 때마다 인스턴스화합니다. ServiceClient 그런 식으로 :

new MusicRepo_DBAccess_ServiceClient(new InstanceContext(instanceContext), customBinding, endpointAddress);

그런 다음 내 웹 방법에 액세스합니다 (OperationContracts) 해당 인스턴스에서 (메소드를 소비하고 나중에 닫기 전에 열기 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 서비스에 대한 요청이 들어올 때마다 자동으로 자동으로 수행하고 "주문형"입니다.

마크

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top