WCF ServiceHost derechos de acceso


166

Recibo el siguiente error cuando paso por el tutorial de WCF.

HTTP no pudo registrar la URL http: // +: 8000 / ServiceModelSamples / Service / . Su proceso no tiene derechos de acceso a este espacio de nombres (consulte http://go.microsoft.com/fwlink/?LinkId=70353 para más detalles).

¿Es esto algo causado por una restricción en Windows 7?


Puedes encontrar mucha información útil en este blog . Hey también proporciona una buena herramienta GUI.
bob

Respuestas:


179

El problema es que Windows bloquea la creación de la URL.

Pasos para corregir: Ejecute el símbolo del sistema como administrador. Agregue la URL a la ACL

netsh http add urlacl url=http://+:8000/ServiceModelSamples/Service user=mylocaluser

44
Me alegra que hayas arreglado eso. ¿Qué significaba el "+"?
John Saunders

Tengo el presentimiento de que significa una IP local genérica.
Joshua

12
Nota: Debe ingresar url = http: // +: puerto / ruta exactamente. url = address: port / path no funcionó para mí, como pensarías que podría funcionar. También tenga en cuenta que debe usar el servidor de red como su usuario ("NT AUTHORITY \ NETWORK SERVICE", si eso es lo que está configurado para el instalador de su servicio.
Mike Pateras

8
¿De alguna manera haces esto sin necesidad de un acceso de administrador?
setzamora

1
Usar mi cuenta para el usuario no funcionó. Trabajó con el usuario = Todos
Kim

90

Si está ejecutando a través del IDE, la ejecución como administrador debería ayudar. Para hacer esto, ubique el ícono de la aplicación Visual Studio 2008/10, haga clic derecho y seleccione "Ejecutar como administrador"


22
No es realmente una solución "mucho mejor" @Liam: los privilegios de administrador en un entorno de desarrollo en una configuración corporativa podrían otorgarle muchos más permisos para hacer cosas peligrosas. Una solución mucho más fácil, claro, pero con el poder viene la responsabilidad ...
cortar

2
La solución original también requería la ejecución como administrador, otorgada por un período de tiempo menor, y por supuesto, debe ser consciente de lo que está haciendo desde un contexto de seguridad.
Stephen Newman

1
Entonces, ¿de todos modos hacer esto sin privilegios de administrador?
setzamora

Perfecto. Estaba ejecutando un programa de IDE que necesitaba registrar una URL en otra máquina y funcionar como administrador funcionó perfectamente.
ThePartyTurtle

36

Otra solución es usar la dirección

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

.NET Framework (3.5) registra automáticamente esta dirección (http: // *: 8732 / Design_Time_Addresses) para depurar el alcance. Esto es útil cuando necesita alojar servicios dentro de Visual Studio para depurar o probar. No uses esto en producción ...


1
Algunos sitios se refieren al puerto 8731 en lugar de 8732.
Nenad Dobrilovic

1
@DaviFiamenghi Mientras .net 3.5 esté instalado, debería funcionar. Pero nunca lo intenté. Por lo general, considero que una prueba como esta es una prueba de integración, así que no la ejecuto en TFS, solo ejecuto pruebas unitarias en TFS.
Davide Icardi

@NenadDobrilovic Mine utiliza 8733 :). Pero eso no es importante.
Hooch

1
Nuestro servidor está usando localhost: 8733 / Design_Time_Addresses y nunca hubiera sabido buscarlo sin su respuesta, gracias. Además, la herramienta de Bob mostró todas las direcciones autorizadas, así es como descubrí que era 8733. Gracias
Lee Oades

30

Abra un símbolo del sistema como administrador y escriba el siguiente comando para agregar su URL:

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

Algunos puntos a tener en cuenta:

  1. cambiar el puerto según su codificación
  2. cambie el nombre de la biblioteca de servicios según el nombre de su biblioteca
  3. "YourService" es opcional

Para obtener más información, puede consultar: Configuración de HTTP y HTTPS


3

Abra Visual Studio como administrador. Se ejecutará.


Tuve el mismo problema con nunit-gui. Corrió como administrador, todo bien.
Valamas

Tengo el mismo problema en comparación con 2013 y la ejecución como administrador no funciona
ZoomVirus

¿Por qué necesito administrador? ¿Por qué no puedo ejecutar como usuario estándar?
John


-2

Estoy trabajando en Windows Vista. Incluso me enfrenté al mismo problema, pero cuando intenté ejecutar VS 2008 con privilegios administrativos, el problema se resolvió y mi servicio estaba funcionando. :)


-2

Ejecutar Visual Studio como administrador podría solucionar el problema, pero si usa Visual Studio con, por ejemplo, TortoiseSVN, no puede confirmar ningún cambio. Otra posible solución sería ejecutar el servicio como administrador y el resto Visual Studio como usuario local.


-3

abra su Visual Studio en modo de administración y luego pruébelo.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.