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