Prawa dostępu do usługi WCF ServiceHost

166

Podczas przechodzenia przez samouczek WCF pojawia się następujący błąd.

HTTP nie może zarejestrować adresu URL http: // +: 8000 / ServiceModelSamples / Service / . Twój proces nie ma praw dostępu do tej przestrzeni nazw ( szczegółowe informacje można znaleźć pod adresem http://go.microsoft.com/fwlink/?LinkId=70353 ).

Czy jest to spowodowane ograniczeniem w systemie Windows 7?

Joshua
źródło
Na tym blogu znajdziesz wiele przydatnych informacji . Hey zapewnia również ładne narzędzie GUI.
bob

Odpowiedzi:

179

Problem polega na tym, że tworzenie adresu URL jest blokowane przez system Windows.

Kroki do naprawienia: Uruchom wiersz polecenia jako administrator. Dodaj adres URL do listy ACL

netsh http add urlacl url=http://+:8000/ServiceModelSamples/Service user=mylocaluser
Joshua
źródło
4
Cieszę się, że to naprawiłeś. Co oznaczało „+”?
John Saunders
Mam przeczucie, że oznacza to ogólny lokalny adres IP.
Joshua
12
Uwaga: musisz wprowadzić dokładnie adres url = http: // +: port / path. url = adres: port / ścieżka nie działały dla mnie, jak można by pomyśleć. Pamiętaj również, że musisz używać serwera sieciowego jako swojego użytkownika („ZARZĄDZANIE NT \ USŁUGA SIECIOWA”, jeśli tak jest ustawiony instalator Twojej usługi.
Mike Pateras
8
Czy w jakiś sposób możesz to zrobić bez dostępu administratora?
setzamora,
1
używanie mojego konta dla użytkownika nie działało. Pracował z użytkownikiem = Wszyscy
Kim
90

Jeśli korzystasz z IDE, powinieneś pracować jako administrator. Aby to zrobić, zlokalizuj ikonę aplikacji Visual Studio 2008/10, kliknij ją prawym przyciskiem myszy i wybierz „Uruchom jako administrator”

Stephen Newman
źródło
22
Niezbyt „dużo lepsze” rozwiązanie @Liam - uprawnienia administratora w środowisku deweloperskim w konfiguracji korporacyjnej mogą dać o wiele więcej uprawnień do wykonywania niebezpiecznych rzeczy. O wiele łatwiejsze rozwiązanie,
jasne
2
Oryginalne rozwiązanie wymagało również wykonania jako administrator - przyznawane na mniejszy okres czasu i oczywiście musisz być świadomy tego, co robisz z kontekstu bezpieczeństwa.
Stephen Newman,
1
więc mimo wszystko zrobić to bez uprawnień administratora?
setzamora,
Idealny. Uruchamiałem program z IDE, który musiał zarejestrować adres URL na innym komputerze i działał jako administrator, działając doskonale.
ThePartyTurtle
36

Innym rozwiązaniem jest użycie adresu

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

NET Framework (3.5) automatycznie rejestruje ten adres (http: // *: 8732 / Design_Time_Addresses) w celu debugowania zakresu. Jest to przydatne, gdy musisz hostować usługi w programie Visual Studio w celu debugowania lub testowania. Nie używaj tego w produkcji ...

Davide Icardi
źródło
1
Niektóre witryny odwołują się do portu 8731 zamiast 8732.
Nenad Dobrilovic
1
@DaviFiamenghi Dopóki .net 3.5 jest zainstalowany, powinien działać. Ale nigdy nie próbowałem. Zazwyczaj taki test uważam za test integracji, więc nie uruchamiam go na TFS, tylko uruchamiam testy jednostkowe na TFS.
Davide Icardi
Kopalnia @NenadDobrilovic używa 8733 :). Ale to nie jest ważne.
Hooch
1
Nasz serwer używa localhost: 8733 / Design_Time_Addresses i nigdy nie szukałbym go bez Twojej odpowiedzi, dzięki. Ponadto narzędzie Boba pokazało wszystkie dozwolone adresy - w ten sposób odkryłem, że to 8733. Dzięki
Lee Oades
30

Otwórz wiersz polecenia jako administrator i napisz poniższe polecenie, aby dodać swój adres URL:

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

kilka punktów, o których należy pamiętać:

  1. zmień port zgodnie z kodowaniem
  2. Zmień nazwę biblioteki usług zgodnie z nazwą biblioteki
  3. „YourService” jest opcjonalne

aby uzyskać więcej informacji, sprawdź: Konfigurowanie HTTP i HTTPS

Metin Atalay
źródło
3

Otwórz program Visual Studio jako administrator. Będzie działać.

Vicky
źródło
Miałem ten sam problem z nunit-gui. Biegałem jako administrator, wszystko dobrze.
Valamas
Mam ten sam problem w porównaniu z 2013 i
działam
dlaczego potrzebuję administratora, dlaczego nie mogę działać jako użytkownik standardowy?
John
-2

Pracuję w systemie Windows Vista. Nawet ja napotkałem ten sam problem, ale kiedy próbowałem uruchomić VS 2008 z uprawnieniami administratora, problem został rozwiązany i moja usługa działała. :)

Anitesh Kumar.
źródło
-2

Uruchomienie Visual Studio jako administrator może rozwiązać ten problem, ale jeśli używasz Visual Studio na przykład z TortoiseSVN, nie możesz zatwierdzić żadnych zmian. Innym możliwym rozwiązaniem byłoby uruchomienie usługi jako administrator, a pozostałą część programu Visual Studio jako użytkownik lokalny.

Doro
źródło
-3

otwórz program Visual Studio w trybie administracyjnym, a następnie wypróbuj.

Palnati
źródło
-3

Otwórz program Visual Studio jako administrator:

wprowadź opis obrazu tutaj

lalit
źródło