Как определить конфиги нескольких конечных точек для автономной службы WCF? - PullRequest
2 голосов
/ 14 декабря 2011

У меня есть два контракта 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 Ответ

4 голосов
/ 14 декабря 2011

Я не верю, что для предоставления разных API нужно использовать несколько конечных точек. Они предназначены для выставления одного и того же контракта с другой привязкой. Вы должны создать новый хост для каждого API. Вы можете поделиться конфиг между ними.

...