C# – Cannot start wcf service host


I'm trying to create a service host for my WCF application. When I start the app I get an error saying

The service cannot be started. This service has no endpoint defined.
Please add at least one endpoint for the service in config file and
try again.

I followed the tutorial on PluralSight and this is the code I came up with

using System.ServiceModel;
using FreedomService;

namespace ConsoleHost
    class Program
        static void Main(string[] args)
            var host = new ServiceHost(typeof(PeopleService));
            host.AddServiceEndpoint(typeof (IPeopleService), new BasicHttpBinding(),
            host.AddServiceEndpoint(typeof(IPeopleService), new WSHttpBinding(), 
            host.AddServiceEndpoint(typeof(IPeopleService), new NetTcpBinding(), 
            catch (Exception e)

        static void PrintServiceInfo(ServiceHost host)
            Console.WriteLine("{0} is up and running with these endpoints:",host.Description.ServiceType);
            foreach (var endpoint in host.Description.Endpoints)



public interface IPeopleService
    string GetData(int value);

    PersonType GetPersonById(int id);


public class PeopleService : IPeopleService, IDisposable
        private ICollection<PersonType> People = new Collection<PersonType>
        public string GetData(int value)
            return string.Format("You entered: {0}", value);

        public PersonType GetPersonById(int id)
            var person = People.First(p => p.Id == id);
            if (person!= null)
                return person;
            throw new InvalidDataException(string.Format("No Person with the id: {0} found.",id));

        public void Dispose()
            this.People = null;


<?xml version="1.0" encoding="utf-8" ?>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />

servicelibrary's app.config

<?xml version="1.0" encoding="utf-8" ?>

    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
    <compilation debug="true" />
  <!-- When deploying the service library project, the content of the config file must be added to the host's 
  app.config file. System.Configuration does not support config files for libraries. -->
      <service name="FreedomService.PeopleService">
            <add baseAddress = "http://localhost:8733/Design_Time_Addresses/FreedomService/basic/" />
        <!-- Service Endpoints -->
        <!-- Unless fully qualified, address is relative to base address supplied above -->
        <endpoint address="" binding="basicHttpBinding" contract="FreedomService.IPeopleService">
              Upon deployment, the following identity element should be removed or replaced to reflect the 
              identity under which the deployed service runs.  If removed, WCF will infer an appropriate identity 
            <dns value="localhost"/>
        <!-- Metadata Endpoints -->
        <!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. --> 
        <!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
          <!-- To avoid disclosing metadata information, 
          set the values below to false before deployment -->
          <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
          <!-- To receive exception details in faults for debugging purposes, 
          set the value below to true.  Set to false before deployment 
          to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="False" />

Best Solution

tl;dr; Fix name in App.config

For me, this problem was triggered by ReSharper: I renamed the service and it had not renamed it everywhere.

Go into App.config to correct the service and interface names to fix the issue.

Related Question