Direitos de acesso do WCF ServiceHost

166

Eu recebo o seguinte erro ao passar pelo tutorial do WCF.

O HTTP não pôde registrar a URL http: // +: 8000 / ServiceModelSamples / Service / . Seu processo não possui direitos de acesso a este espaço para nome (consulte http://go.microsoft.com/fwlink/?LinkId=70353 para obter detalhes).

Isso é causado por uma restrição no Windows 7?

Joshua
fonte
Você pode encontrar muitas informações úteis neste blog . Hey também fornece uma boa ferramenta GUI.
bob

Respostas:

179

O problema é que o URL está sendo impedido de ser criado pelo Windows.

Etapas para corrigir: Execute o prompt de comando como administrador. Adicione o URL à ACL

netsh http add urlacl url=http://+:8000/ServiceModelSamples/Service user=mylocaluser
Joshua
fonte
4
Que bom que você resolveu isso. O que o "+" significa?
John Saunders
Eu tenho um palpite de que isso significa um IP local genérico.
2077 Joshua
12
Nota: Você praticamente precisa digitar url = http: // +: port / path exatamente. url = endereço: porta / caminho não funcionou para mim, como você poderia pensar. Além disso, note que você tem que usar o servidor de rede como usuário ( "NT AUTHORITY \ NETWORK SERVICE", se é isso que o seu serviço de instalador está definido para.
Mike Pateras
8
De alguma forma você faz isso sem precisar de um acesso de administrador?
Setzamora 10/09/12
1
usar minha conta para o usuário não funcionou. Trabalhou com usuário = Todos
Kim
90

Se você estiver executando através do IDE, a execução como administrador deve ajudar. Para isso, localize o ícone do aplicativo Visual Studio 2008/10, clique com o botão direito do mouse e selecione "Executar como administrador"

Stephen Newman
fonte
22
Não é realmente uma solução 'muito melhor' @Liam - privilégios de administrador em um ambiente de desenvolvimento em uma configuração corporativa podem dar a você muito mais permissões para fazer coisas perigosas. Uma solução muito mais fácil, claro, mas com o poder vem a responsabilidade ...
unsliced
2
A solução original também exigia execução como administrador - concedida por um período menor de tempo e, é claro, você precisa estar ciente do que está fazendo em um contexto de segurança.
Stephen Newman
1
então, de qualquer maneira, fazer isso sem privilégios de administrador?
Setzamora 10/09/12
Perfeito. Eu estava executando um programa do IDE que precisava registrar uma URL em outra máquina e executando como administrador funcionou perfeitamente.
ThePartyTurtle
36

Outra solução é usar o endereço

http: // localhost: 8732 / Design_Time_Addresses / YOUR_ADDRESS .

O .NET Framework (3.5) registra automaticamente esse endereço (http: // *: 8732 / Design_Time_Addresses) para o escopo de depuração. Isso é útil quando você precisa hospedar serviços dentro do visual studio para depuração ou teste. Não use isso na produção ...

Davide Icardi
fonte
1
Alguns sites referem-se a porta 8731 em vez de 8732.
Nenad Dobrilovic
1
@DaviFiamenghi Enquanto o .net 3.5 estiver instalado, ele deverá funcionar. Mas eu nunca tentei. Normalmente, considero um teste como este um teste de integração, para não executá-lo no TFS, apenas executo testes de unidade no TFS.
Davide Icardi
@NenadDobrilovic Mine usa 8733 :). Mas isso não é importante.
Hooch
1
Nosso servidor está usando localhost: 8733 / Design_Time_Addresses e eu nunca saberia procurá-lo sem a sua resposta, obrigado. Além disso, a ferramenta de Bob mostrou todos os endereços permitidos - foi assim que descobri que era 8733. Obrigado
Lee Oades
30

Abra um prompt de comando como administrador e escreva abaixo para adicionar seu URL:

netsh http add urlacl url=http://+:8000/YourServiceLibrary/YourService user=Everyone

alguns pontos a serem lembrados:

  1. mude a porta conforme sua codificação
  2. altere o nome da biblioteca de serviço conforme o nome da sua biblioteca
  3. "YourService" é opcional

para obter mais informações, verifique: Configurando HTTP e HTTPS

Metin Atalay
fonte
3

Abra o Visual Studio como administrador. Ele será executado.

Vicky
fonte
Eu tive o mesmo problema com nunit-gui. Funcionou como administrador, tudo de bom.
Valamas
Eu tenho o mesmo problema vs 2013 e executado como administrador não funciona
ZoomVirus
Por que eu preciso de administrador? Por que não consigo executar como usuário padrão?
John John
-2

Estou trabalhando no Windows Vista. Mesmo eu enfrentei o mesmo problema, mas quando tentei executar o VS 2008 com privilégios administrativos, o problema foi resolvido e meu serviço estava em funcionamento. :)

Anitesh Kumar.
fonte
-2

A execução do Visual Studio como administrador pode corrigir o problema, mas se você usar o Visual Studio com, por exemplo, o TortoiseSVN, não poderá confirmar nenhuma alteração. Outra solução possível seria executar o serviço como administrador e o restante do Visual Studio como usuário local.

Doro
fonte
-3

abra seu Visual Studio no modo de administração e tente.

Palnati
fonte
-3

Por favor, abra seu Visual Studio como administrador:

insira a descrição da imagem aqui

lalit
fonte