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?


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

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”


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


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


3

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


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


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


-3

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


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.