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?


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

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"


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


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


3

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


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. :)


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


-3

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


-3

Por favor, abra seu Visual Studio como administrador:

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.