2016-09-13 5 views
0

WPF 응용 프로그램 내에서 WCF 서비스를 호스팅하려고하지만 그렇게 할 수 없습니다.WPF 응용 프로그램에서 WCF 서비스 호스팅

저는 여기에 구현 된 코드는 다음과 같습니다

ServiceHost host = null; 
using (host = new ServiceHost(typeof(WcfJsonTransferRestService.apiService))) 
      { 
       host.AddServiceEndpoint(typeof(WcfJsonTransferRestService.IApiService), new WebHttpBinding(), "http://localhost:3300/api/endpoint1"); 
       host.AddServiceEndpoint(typeof(WcfJsonTransferRestService.IApiService), new WebHttpBinding(), "http://localhost:3300/api/endpoint2"); 
       host.AddServiceEndpoint(typeof(WcfJsonTransferRestService.IApiService), new WebHttpBinding(), "http://localhost:3300/api/endpoint3"); 

host.Open(); 

다 좋아 보이는 벌금을 실행하지만 서비스가 시작되지 않습니다.

누구든지 내 문제가 무엇인지 알 수 있습니까?

감사

+0

디버거에서 코드를 단계별로 실행 해 보았습니까? 오류가 발생 했습니까? 이벤트 뷰어에 어떤 것이 있습니까? – Tim

+0

예, 모든 것이 잘 생성되지만 연결을 시도하면 (고급 REST 클라이언트 사용) 서비스가 실행되지 않는 것처럼 오류가 발생합니다. – d199224

+0

게시 된 코드에서 SOAP 서비스를 호스팅하는 것처럼 보입니다. 나머지는 REST와 다릅니다. 비누. 'WSHttpBinding' 대신'WebHttpBinding'을 사용해 보셨나요? – Tim

답변

2

가능성이 가장 높은 문제는 당신이 using 문에서 생성과 ServiceHost의 오프닝을 포장 한 것입니다. using 문장이 완료되면 (게시 된 코드에서 명확하지 않음) ServiceHost 인스턴스가 닫힙니다. 이 같은 host.Open();using 블록 권리를 닫으면 즉

: 호스트가

using (host = new ServiceHost(typeof(WcfJsonTransferRestService.apiService))) 
{ 
    host.AddServiceEndpoint(typeof(WcfJsonTransferRestService.IApiService), new WebHttpBinding(), "http://localhost:3300/api/endpoint1"); 
    host.AddServiceEndpoint(typeof(WcfJsonTransferRestService.IApiService), new WebHttpBinding(), "http://localhost:3300/api/endpoint2"); 
    host.AddServiceEndpoint(typeof(WcfJsonTransferRestService.IApiService), new WebHttpBinding(), "http://localhost:3300/api/endpoint3"); 

    host.Open(); 
} 

폐쇄되고 응용 프로그램이 요청을받을 수 없습니다. 일반적으로 응용 프로그램 시작시 (또는 주어진 이벤트에 대해) 호스트를 열고 응용 프로그램이 종료되면 호스트를 닫는 것이 좋습니다.

+0

감사합니다. Tim! 내가 어떻게 그것을 놓쳤는 지 모르겠다! – d199224

+0

필자는 여러 샘플에 in을 사용한다고 생각합니다.이 코드는 사람들 코드로 복사됩니다. –