2011-12-13 80 views
2

我有兩個WCF Web API合同。在此之前,我很高興能夠使用TestClient。但是在我實現了第二個之後,我不得不定義端點(並且不能使用默認端點),然後,我在瀏覽器中看不到任何內容,或者這條消息說「這個XML文件沒有任何樣式信息與它。」當我嘗試去端點地址。當我嘗試配置文件時(雖然我不知道如何設置「EnableTestClient = true」),這是一樣的。我非常感謝任何幫助。如何爲WCF自託管服務定義配置多個端點?

 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創建一個新的主機。你可以在他們之間共享配置。