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?

Joshua
fuente
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
Joshua
fuente
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"

Stephen Newman
fuente
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 ...

Davide Icardi
fuente
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

Metin Atalay
fuente
3

Abra Visual Studio como administrador. Se ejecutará.

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

Anitesh Kumar.
fuente
-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.

Doro
fuente
-3

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

Palnati
fuente
-3

Abra su Visual Studio como administrador:

ingrese la descripción de la imagen aquí

lalit
fuente