Servizio WCF Diritti di accesso host


166

Ottengo il seguente errore durante l'esercitazione WCF.

HTTP non è riuscito a registrare l'URL http: // +: 8000 / ServiceModelSamples / Service / . Il tuo processo non ha diritti di accesso a questo spazio dei nomi (vedi http://go.microsoft.com/fwlink/?LinkId=70353 per i dettagli).

Questo è causato da una restrizione su Windows 7?


Puoi trovare molte informazioni utili su questo blog . Hey fornisce anche un bel strumento GUI.
bob,

Risposte:


179

Il problema è che l'URL non è stato creato da Windows.

Passaggi da risolvere: eseguire il prompt dei comandi come amministratore. Aggiungi l'URL all'ACL

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

4
Sono contento che tu l'abbia corretto. Cosa significava "+"?
John Saunders,

Ho la sensazione che significhi un IP locale generico.
Giosuè,

12
Nota: devi praticamente inserire url = http: // +: port / path esattamente. url = address: port / path non ha funzionato per me, come si potrebbe pensare. Si noti inoltre che è necessario utilizzare il server di rete come utente ("NT AUTHORITY \ NETWORK SERVICE", se è impostato su questo programma di installazione del servizio.
Mike Pateras,

8
In che modo lo fai senza aver bisogno di un accesso da amministratore?
setzamora,

1
l'utilizzo del mio account per l'utente non ha funzionato. Ha lavorato con l'utente = Tutti
Kim,

90

Se si esegue tramite l'IDE, l'esecuzione come amministratore dovrebbe essere di aiuto. Per fare questo individuare l'icona dell'applicazione Visual Studio 2008/10, fare clic con il tasto destro del mouse e selezionare "Esegui come amministratore"


22
Non è davvero una soluzione "molto migliore" @Liam: i privilegi di amministratore in un ambiente di sviluppo in una configurazione aziendale potrebbero darti molte più autorizzazioni per fare cose pericolose. Una soluzione molto più semplice, certo, ma con il potere deriva la responsabilità ...
Unsliced

2
La soluzione originale richiedeva inoltre l'esecuzione come amministratore, concessa per un periodo di tempo più breve e, naturalmente, è necessario essere consapevoli di ciò che si sta facendo da un contesto di sicurezza.
Stephen Newman,

1
quindi, comunque per farlo senza i privilegi di amministratore?
setzamora,

Perfetto. Stavo eseguendo un programma da IDE che doveva registrare un URL su un'altra macchina e funzionava come amministratore funzionava perfettamente.
ThePartyTurtle

36

Un'altra soluzione è utilizzare l'indirizzo

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

.NET Framework (3.5) registra automaticamente questo indirizzo (http: // *: 8732 / Design_Time_Addresses) per ambito di debug. Ciò è utile quando è necessario ospitare servizi all'interno di Visual Studio per il debug o il test. Non usarlo in produzione ...


1
Alcuni siti fanno riferimento alla porta 8731 anziché 8732.
Nenad Dobrilovic

1
@DaviFiamenghi Finché è installato .net 3.5 dovrebbe funzionare. Ma non ci ho mai provato. Di solito considero un test come questo un test di integrazione, quindi non lo eseguo su TFS, eseguo solo test di unità su TFS.
Davide Icardi,

La miniera di @NenadDobrilovic utilizza 8733 :). Ma questo non è importante.
Hooch,

1
Il nostro server utilizza localhost: 8733 / Design_Time_Addresses e non avrei mai saputo cercarlo senza la tua risposta, grazie. Inoltre, lo strumento di Bob ha mostrato tutti gli indirizzi autorizzati: è così che ho scoperto che era 8733. Grazie
Lee Oades,

30

Apri un prompt dei comandi come amministratore e scrivi sotto il comando per aggiungere il tuo URL:

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

alcuni punti da tenere a mente:

  1. cambia la porta secondo la tua codifica
  2. cambia il nome della libreria di servizio secondo il nome della tua libreria
  3. "YourService" è facoltativo

per maggiori informazioni puoi controllare: Configurazione di HTTP e HTTPS


3

Apri Visual Studio come amministratore .. Verrà eseguito.


Ho avuto lo stesso problema con nunit-gui. Ho funzionato come amministratore, tutto bene.
Valamas,

Ho lo stesso problema rispetto al 2013 e funziona come admin non funziona
ZoomVirus

perché ho bisogno di admin perché non posso eseguire come utente standard?
John


-2

Sto lavorando su Windows Vista. Anche io ho affrontato lo stesso problema, ma quando ho provato a eseguire VS 2008 con privilegi di amministratore, il problema si è risolto e il mio servizio era attivo e funzionante. :)


-2

L'esecuzione di Visual Studio come amministratore potrebbe risolvere il problema, ma se si utilizza Visual Studio con, ad esempio, TortoiseSVN, non è possibile eseguire il commit di eventuali modifiche. Un'altra possibile soluzione sarebbe quella di eseguire il servizio come amministratore e il resto di Visual Studio come utente locale.


-3

apri Visual Studio in modalità amministrazione, quindi provalo.


-3

Apri Visual Studio come amministratore:

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.