Хост службы WCF не может найти метаданные службы.Пожалуйста, проверьте, включены ли метаданные - PullRequest
0 голосов
/ 17 мая 2018

Мой файл App.config:

<?xml version="1.0"?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="WcfJsonRestService.Service1">
        <endpoint address="http://localhost:8733/service1" 
                  binding="webHttpBinding" 
                  contract="WcfJsonRestService.IService1"/>
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior>
          <webHttp />
        </behavior>
      </endpointBehaviors>
    </behaviors>
  </system.serviceModel>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

Мой код service1.cs такой, как показано ниже

using System;
using System.ServiceModel.Web;

namespace WcfJsonRestService
{
    public class Service1 : IService1
    {
        [WebInvoke(Method = "GET", 
                    ResponseFormat = WebMessageFormat.Json, 
                    UriTemplate = "data/{id}")]
        public Person GetData(string id)
        {
            // lookup person with the requested id 
            return new Person()
                       {
                           Id = Convert.ToInt32(id), 
                           Name = "Leo Messi"
                       };
        }
    }

    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

Первоначально это вызывало проблему как

Конфигурация узла службы WCF. Попробуйте изменить порт HTTP на 8733

. Поэтому я выполнил следующий код в CMD

netsh http add urlacl url=http://+:8733/ user=WORK\Clara

. После выполнения этого кода возникла новая ошибка.как показано ниже enter image description here

Как я могу решить эту проблему?

Я также попытался обновить App.Config, как указано ниже по ссылке, но затем после того, как я получилкакая-то другая ошибка

Хосту службы WCF не удается найти метаданные службы

1 Ответ

0 голосов
/ 17 мая 2018

Вам не хватает конфигурации поведения метаданных службы. Пожалуйста, добавьте ниже конфигурации:

<configuration>
<system.serviceModel>
<services>
  <service name="WcfJsonRestService.Service1">
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8733"/>
      </baseAddresses>
    </host>
    <endpoint address="service1"
              binding="webHttpBinding"
              contract="WcfJsonRestService.IService1"/>
  </service>
</services>
<behaviors>
  <endpointBehaviors>
    <behavior>
      <webHttp />
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior>
      <serviceMetadata httpGetEnabled ="true"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

...