System.ServiceModel.AddressAccessDeniedException: HTTP konnte die URL http :: 8080 nicht registrieren

Ich habe meinen ersten selbst gehosteten WCF-Dienst erstellt. Ich habe es in einer C # -Konsolenanwendung gehostet, aber es wird ein Fehler ausgegeben:

System.ServiceModel.AddressAccessDeniedException: HTTP konnte die URL http: 8080 nicht registrieren

Wenn ich Visual Studio 2013 als Administrator ausführe, funktioniert es gut, aber nicht, wenn nicht. Gibt es eine Möglichkeit, dies automatisch zu erledigen, anstatt VS als ADMIN zu starten?

Bisher habe ich eineHelloService Klassenbibliothek, in der ich einen WCF-Dienst hinzugefügt habe, der aus einer Schnittstelle bestehtIHelloService undHelloService.

IHelloService:

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

HelloService:

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

Dann habe ich eine C # -Konsolen-App erstelltHelloServiceHost das hat eineapp.config Datei:

<?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> 

und program.cs Datei:

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();
            }
        }
    }
}

Ich habe ein Video-Tutorial genau verfolgt, aber es funktioniert nicht, warum?

Ich verwende VS 2013, .net 4

Antworten auf die Frage(4)

Ihre Antwort auf die Frage