2011-12-13 4 views
2

두 개의 WCF 웹 API 계약이 있습니다. 이 전에는 TestClient를 사용할 수있어서 기뻤습니다. 그러나 두 번째 구현 된 후에 끝점을 정의해야하고 (기본 하나는 사용할 수 없음) 브라우저 나이 메시지에 "이 XML 파일에는 관련 스타일 정보가없는 것 같습니다. 그것." 끝점 주소로 이동하려고 할 때 config 파일을 시도 할 때도 마찬가지입니다 ("EnableTestClient = true"를 설정하는 방법을 모르지만). 나는 정말 어떤 도움을 주셔서 감사합니다.WCF 자체 호스팅 서비스에 대한 configs 다중 끝점을 정의하는 방법은 무엇입니까?

 var baseurl = new Uri("http://localhost:7000/api/v1.0"); 
     var config = new HttpConfiguration() { EnableTestClient = true }; 
     config.CreateInstance = (type, context, request) => container.Resolve(type); 
     var host = new HttpServiceHost(typeof(ServiceAPI), config, baseurl); 

     host.Description.Behaviors.Add(
      new ServiceMetadataBehavior() { HttpGetEnabled = true, HttpGetUrl = baseurl });    

     // Add MEX endpoint 
     //host.AddServiceEndpoint(
     // ServiceMetadataBehavior.MexContractName, 
     // MetadataExchangeBindings.CreateMexHttpBinding(), 
     // "mex" 
     //); 

     //host.AddServiceEndpoint(typeof(IStatAPI), new WebHttpBinding(), "/stat"); 
     //host.AddServiceEndpoint(typeof(IAlarmAPI), new WebHttpBinding(), "/alarm");    

     host.Faulted += (s, e) => Debug.WriteLine(e);    

     host.Open(); 

답변

4

다른 API를 노출하는 데 여러 끝점을 사용해야한다고 생각하지 않습니다. 이들은 서로 다른 바인딩으로 동일한 계약을 노출하기위한 것입니다. 각 API에 대해 새 호스트를 만들어야합니다. 당신은 그들 사이의 설정을 공유 할 수 있습니다.