WCF ServiceДоступ до прав доступу


166

Я отримую таку помилку під час проходження підручника WCF.

HTTP не міг зареєструвати URL http: // +: 8000 / ServiceModelSamples / Service / . Ваш процес не має прав доступу до цього простору імен ( детальну інформацію див. На http://go.microsoft.com/fwlink/?LinkId=70353 ).

Це щось спричинено обмеженням для Windows 7?


У цьому блозі ви можете знайти багато корисної інформації . Гей також забезпечує хороший інструмент GUI.
боб

Відповіді:


179

Проблема полягає в тому, що URL-адреса блокується від створення Windows.

Крок для виправлення: запустити командний рядок як адміністратор. Додайте URL до ACL

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

4
Рада, що ви виправили це. Що означав "+"?
Джон Сондерс

У мене є думка, що це означає загальний локальний IP.
Джошуа

12
Примітка: Ви майже повинні точно ввести url = http: // +: port / path. url = address: порт / шлях не працював для мене, як ви могли б подумати. Також зауважте, що ви повинні використовувати мережевий сервер як свого користувача ("NT AUTHORITY \ NETWORK SERVICE", якщо саме так встановлено програму встановлення вашої служби.
Mike Pateras,

8
Як я це роблю, не потребуючи доступу адміністратора?
сетзамора

1
використання мого облікового запису для користувача не працювало. Працював з користувачем = Усі
Кім

90

Якщо ви працюєте через IDE, запуск адміністратора повинен допомогти. Для цього знайдіть значок програми Visual Studio 2008/10, клацніть правою кнопкою миші та виберіть "Запустити як адміністратор"


22
Насправді не «набагато краще» рішення @Liam - права адміністратора в середовищі розробників у корпоративній установці можуть дати вам ще багато дозволів робити небезпечні речі. Набагато простіше рішення, звичайно, але з владою покладається відповідальність ...
Немає,

2
Оригінальне рішення також вимагало виконання адміністратором - надається на менший проміжок часу, і, звичайно, вам потрібно знати, що ви робите з контексту безпеки.
Стівен Ньюмен

1
так, у будь-якому разі це робити без привілеїв адміністратора?
сетзамора

Ідеально. Я запускав програму від IDE, якій потрібно було зареєструвати URL-адресу на іншій машині і працював, коли адміністратор працював ідеально.
ThePartyTurtle

36

Ще одне рішення - використовувати адресу

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

.NET Framework (3.5) автоматично зареєструє цю адресу (http: // *: 8732 / Design_Time_Addresses) для налагодження сфери налагодження. Це корисно, коли вам потрібно розмістити сервіси у візуальній студії для налагодження чи тестування. Не використовуйте це для виробництва ...


1
Деякі сайти посилаються на порт 8731 замість 8732.
Nenad

1
@DaviFiamenghi Поки встановлено .net 3.5, він повинен працювати. Але я ніколи не пробував. Зазвичай я вважаю такий тест інтеграційним тестом, тому я не запускаю його на TFS, я виконую лише тестові одиниці на TFS.
Девід Ікарді

@NenadDobrilovic Mine використовує 8733 :). Але це не важливо.
Хуч

1
Наш сервер використовує localhost: 8733 / Design_Time_Addresses, і я ніколи не знав би шукати його без вашої відповіді, дякую. Також інструмент Боба показав усі дозволені адреси - ось так я виявив, що це 8733. Спасибі
Лі Оадес

30

Відкрийте командний рядок як адміністратор, і ви напишете команду нижче, щоб додати свою URL-адресу:

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

кілька моментів, про які слід пам’ятати:

  1. змінити порт відповідно до кодування
  2. змінити ім’я бібліотеки послуг відповідно до імені вашої бібліотеки
  3. "Ваша послуга" не є обов'язковою

для отримання додаткової інформації ви можете перевірити: Налаштування HTTP та HTTPS


3

Відкрийте Visual Studio як адміністратор. Він буде працювати.


У мене була така ж проблема з нуні-гуї. Побіг як адміністратор, все добре.
Валамас

У мене однакова проблема проти 2013 року, а адміністратор не працює
ZoomVirus

чому мені потрібен адміністратор, чому я не можу запуститись як стандартний користувач?
Джон

0

Інший варіант роботи, це ..,

Якщо в пулі додатків змінити відступ, ви можете запустити код, ідея полягає у зміні облікового запису виконання пулу додатків для одного облікового запису з більшою кількістю привілеїв,

Для отримання детальної інформації використовуйте цей блог

https://letrasandnumeros.com/2017/11/27/http-could-not-register-url-http-80-hellowcf-your-process-does-not-have-access-rights-to-this-namespace/


-2

Я працюю над Windows Vista. Навіть я зіткнувся з тією ж проблемою, але коли я намагався запустити VS 2008 з адміністративними привілеями, проблема вирішилася, і моя служба працювала. :)


-2

Запуск Visual Studio в якості адміністратора може виправити проблему, але якщо ви використовуєте Visual Studio, наприклад, TortoiseSVN, ви не можете вносити будь-які зміни. Іншим можливим рішенням буде запуск служби як адміністратор, а решта Visual Studio як місцевий користувач.


-3

будь ласка, відкрийте свою Visual Studio в режимі адміністрування, а потім спробуйте.


-3

Будь ласка, відкрийте свою Visual Studio як адміністратор:

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.