Хост службы WCF не может найти ошибку метаданных службы - PullRequest
0 голосов
/ 27 января 2020

Я получаю эту ошибку при попытке запустить веб-службу на локальном хосте:

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

Это файл конфигурации приложения :

     <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
    <add key="SrvName" value="..."/>
    <add key="DbName" value="..."/>
    <add key="DbId" value=".."/>
    <add key="DbPw" value=".."/>
    <add key="userId" value=".."/>
    <add key="userPw" value=".."/>
    <add key="code_rep" value=".."/>
    <add key="tex_rep" value=""/>
    <add key="F_LOG" value="logCla.txt"/>
  </appSettings>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="simplecalculmexcomport">
          <serviceDebug includeExceptionDetailInFaults="true" />
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="simplecalculmexcomport" name="WcfsaveRepES.service">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration=""
            name="simplecalculhttpservice" contract="WcfsaveRepES.Iservice" />
        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
            name="simplecalculmexpservice" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8081/" />
          </baseAddresses>
        </host>
      </service>
    </services>
  </system.serviceModel>
</configuration>

Есть решение? Спасибо

1 Ответ

0 голосов
/ 28 января 2020

Я протестировал его в приложении Console, добавив вашу конфигурацию в мой файл Appconfig. Он работает правильно.
На стороне сервера (Console приложение, Пространство имен ConsoleApp4).

  class Program
    {
        static void Main(string[] args)
        {
            ServiceHost host = new ServiceHost(typeof(Service1));
            host.Open();
            Console.WriteLine(host.Description.Endpoints[0].Address);

            Console.ReadLine();
            host.Close();
        }
    }
    [ServiceContract(Namespace ="ABCD")]

    public interface IService1
    {

        [OperationContract]

        string GetData(int value);

    }
    public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }
    }

App.config

  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="simplecalculmexcomport">
          <serviceDebug includeExceptionDetailInFaults="true" />
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="simplecalculmexcomport" name="ConsoleApp4.Service1">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration=""
            name="simplecalculhttpservice" contract="ConsoleApp4.IService1" />
        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
            name="simplecalculmexpservice" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:9099/" />
          </baseAddresses>
        </host>
      </service>
    </services>
  </system.serviceModel>

Служба может работать правильно. Какой у вас тип проекта? После поиска связанных ошибок в inte rnet эта ошибка, по-видимому, в основном относится к проблеме квалифицированного пространства имен (свойство Name службы, свойство Contract раздела конечной точки). пожалуйста, обратитесь к следующим темам.
https://social.msdn.microsoft.com/Forums/vstudio/en-US/ff01e402-3ed4-4cf1-bbbc-2ac22af7fc96/wcf-service-host-cannot-find-any-service-metadata?forum=wcf
При попытке самостоятельного размещения я получаю сообщение об ошибке - хост службы wcf не может найти метаданные службы. Проверьте, есть ли метаданные enabled
Хост службы WCF не может найти метаданные службы
Пожалуйста, опубликуйте полный код, я постараюсь воспроизвести вашу проблему. Не стесняйтесь, дайте мне знать, если проблема все еще существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...