如何为WCF自托管服务定义多个端点的配置?

时间:2011-12-13 22:51:42

标签: wcf c#-4.0 endpoint wcf-web-api wcftestclient

我有两个WCF Web API合约。在此之前,我很高兴我可以使用TestClient。但是在我实现第二个之后我必须定义端点(并且不能使用默认端点),之后,我在浏览器中看不到任何内容或者此消息说“此XML文件似乎没有任何与之关联的样式信息”它。”当我尝试转到端点地址时。我尝试配置文件时是一样的(虽然我不知道如何设置“EnableTestClient = true”)。我真的很感激任何帮助。

        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();

1 个答案:

答案 0 :(得分:4)

我不相信应该使用多个端点来公开不同的API。它们用于使用不同的绑定来暴露相同的合同。 您应该为每个API创建一个新主机。您可以在它们之间共享配置。