Исключение при запуске приложения ServiceHost для службы WCF - без базового адреса http

Monku спросил: 14 ноября 2017 в 07:27 в: c#

Я пытаюсь изучить службы WCF. И для этой цели я написал небольшое приложение. Мой код хоста службы:

using System;
using System.Linq;namespace ServiceHost
{
    public class ServiceHost<T> : System.ServiceModel.ServiceHost
    {
        public ServiceHost() : base(typeof(T))
        { }        public ServiceHost(params string[] baseAddresses) : base(typeof(T),
        baseAddresses.Select(address => new Uri(address)).ToArray())
        { }
        public ServiceHost(params Uri[] baseAddresses) : base(typeof(T), baseAddresses)
        { }
    }    class Program
    {
        static void Main(string[] args)
        {
            var serviceHost = new ServiceHost<CalculatorService.CalculatorService>();            serviceHost.Open();
            Console.WriteLine("Press ANY key to exit");
            Console.ReadKey();
            serviceHost.Close();
        }
    }
}

Мой app.config файл:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
  <system.serviceModel>
    <services>
      <service name = "CalculatorService.CalculatorService" behaviorConfiguration = "MEXGET">
        <endpoint
      address  = "http://localhost:8101/CalculatorService"
      binding  = "wsHttpBinding"
      contract = "CalculatorService.ICalculatorService"
        />
    <endpoint
      address  = "net.tcp://localhost:8102/CalculatorService"
      binding  = "netTcpBinding"
      bindingConfiguration = "TransactionalTCP"
      contract = "CalculatorService.ICalculatorService"
    />
  </service>
</services>
<bindings>
  <netTcpBinding>
    <binding name = "TransactionalTCP"
             transactionFlow = "true"
    />
  </netTcpBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name = "MEXGET">
      <serviceMetadata httpGetEnabled = "true" httpGetUrl = "MyMEXAddress"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

Когда я пытаюсь запустить приложение ServiceHost, я получаю следующее исключение:

System.InvalidOperationException occurred
HResult=0x80131509
Message=The HttpGetEnabled property of ServiceMetadataBehavior is set to true and the HttpGetUrl property is a relative address, but there is no http base address.  Either supply an http base address or set HttpGetUrl to an absolute address.

Я не понимаю, почему я получаю эту ошибку, когда я уже установил адрес в файле app.confg.

Есть идеи?

Спасибо

0 ответов