System.ServiceModel.AddressAccessDeniedException: o HTTP não pôde registrar a URL http :: 8080

Eu criei meu primeiro serviço WCF auto-hospedado. Eu o hospedei em um aplicativo de console C #, mas gera um erro:

System.ServiceModel.AddressAccessDeniedException: HTTP não pôde registrar a URL http: 8080

Quando executo o Visual Studio 2013 como administrador, ele funciona bem, mas não se não o fizer. Então, alguma maneira de fazê-lo automaticamente em vez de iniciar o VS como um ADMIN?

Até agora eu criei umHelloService biblioteca de classes na qual adicionei um serviço WCF que consiste em uma interfaceIHelloService eHelloService.

IHelloService:

namespace HelloService
{
    [ServiceContract]
    public interface IHelloService
    {
        [OperationContract]
        String GetMsg();
    }
}

HelloService:

namespace HelloService
{
    public class HelloService : IHelloService
    {
        public String GetMsg()
        {
            return "Service Accessed";
        }
    }
}

Então eu criei um aplicativo de console C #HelloServiceHost que tem umapp.config Arquivo:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors >
        <behavior name="MexBehaviour">
          <serviceMetadata httpGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service name="HelloService.HelloService" 
               behaviorConfiguration="MexBehaviour" >
        <endpoint 
            address="HelloService" 
            binding="basicHttpBinding" 
            contract="HelloService.IHelloService"></endpoint>
        <endpoint 
            address="HelloService" 
            binding="netTcpBinding" 
            contract="HelloService.IHelloService"></endpoint>
        <endpoint 
            address="mex" 
            binding="mexHttpBinding" 
            contract="IMetadataExchange"></endpoint>
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8080/"/>
            <add baseAddress="net.tcp://localhost:8081/"/>
          </baseAddresses>
        </host>
      </service>
    </services>
  </system.serviceModel>
</configuration> 

e arquivo program.cs:

using HelloService;
using System.ServiceModel;

namespace HelloServiceHost
{
    class Program
    {
        static void Main(string[] args)
        {
            using(ServiceHost sh = new ServiceHost(typeof(HelloService.HelloService)))
            {
                sh.Open();
                Console.WriteLine("Host Started @"+ System.DateTime.UtcNow.ToShortDateString());
                sh.Close();
            }
        }
    }
}

Eu segui exatamente um tutorial em vídeo, mas não está funcionando por quê?

Estou usando o VS 2013, .net 4

questionAnswers(4)

yourAnswerToTheQuestion