#.net #asp.net-core
#.net #asp.net-core
Вопрос:
У меня возникли проблемы с поиском правильного разрешения для учетной записи службы домена, чтобы иметь возможность запускать мой api (как службу Windows).
Я, вероятно, что-то упускаю, поэтому буду признателен за любую помощь 🙂
Я зарегистрировал правильный URL-адрес в netsh. Я могу запустить службу со своей учетной записью пользователя (которая похожа на учетную запись администратора). Я могу запустить службу, если прослушаюhttp://localhost:28000/public/v1 / но не с помощью порта localhost: 80 или чего-либо другого, кроме localhost. Я добавил свою учетную запись службы в группу администраторов, та же ошибка.
Я работаю на виртуальной машине под управлением Windows Server 2016 Standard. Домен настроен, и я являюсь единственным компьютером в домене.
Спасибо
Вот полная трассировка стека:
информация: Microsoft.AspNetCore.защита данных.Доступен профиль пользователя KeyManagement.XmlKeyManager[0]. Использование ‘C:Users_esbapiAppDataLocalASP.NETDataProtection-Keys ‘как хранилище ключей и Windows DPAPI для шифрования ключей в состоянии покоя. информация: Microsoft.AspNetCore.Server.HttpSys.HttpSysListener[0] Начальная информация: Microsoft.AspNetCore.Server.HttpSys.HttpSysListener[0] Прослушивание префикса:http://localhost:80/public/v1 / сбой: Microsoft.AspNetCore.Server.HttpSys.HttpSysListener[0] Запустите Microsoft.AspNetCore.Server.HttpSys.HttpSysException (0x80004005): в Microsoft отказано в доступе.AspNetCore.Server.HttpSys.UrlGroup.RegisterPrefix(Строковый uriPrefix, контекстный идентификатор Int32) в Microsoft.AspNetCore.Server.HttpSys.UrlPrefixCollection.Зарегистрируйте все исправления (UrlGroup urlGroup) в Microsoft.AspNetCore.Server.HttpSys.HttpSysListener.Запустить()
Необработанное исключение: Майкрософт.Исключение AspNetCore.Server.HttpSys.HttpSysException: доступ запрещен в Microsoft.AspNetCore.Server.HttpSys.UrlGroup.RegisterPrefix(Строковый uriPrefix, контекстный идентификатор Int32) в Microsoft.AspNetCore.Server.HttpSys.UrlPrefixCollection.Зарегистрируйте все исправления (UrlGroup urlGroup) в Microsoft.AspNetCore.Server.HttpSys.HttpSysListener.Запустите () в Microsoft.AspNetCore.Server.HttpSys.MessagePump.startAsync[TContext](приложение IHttpApplication`1, CancellationToken CancellationToken) в Microsoft.AspNetCore.Hosting.Внутренний.WebHost.d__26.MoveNext() — Завершение трассировки стека из предыдущего местоположения, где было вызвано исключение — в System.Runtime.Службы исключений.ExceptionDispatchInfo.Выбросить () в System.Runtime.Службы компилятора.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача task) в Microsoft.AspNetCore.Hosting.WebHostExtensions.d__5.MoveNext() — Завершение трассировки стека из предыдущего местоположения, где было вызвано исключение — в System.Runtime.Службы исключений.ExceptionDispatchInfo.Выбросить () в System.Runtime.Службы компилятора.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача task) в Microsoft.AspNetCore.Hosting.WebHostExtensions.d__4.MoveNext() — Завершение трассировки стека из предыдущего местоположения, где было вызвано исключение — в System.Runtime.Службы исключений.ExceptionDispatchInfo.Выбросить () в System.Runtime.Службы компилятора.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача task) в Microsoft.AspNetCore.Hosting.WebHostExtensions.Run (хост IWebHost)
на EventsServiceHost.StartConsole() в EventsServiceHost.cs: строка 22
на Program.Main(строка[] аргументов) в Program.cs: строка 38
Ответ №1:
Вот ответ на случай, если кто-то еще столкнется с проблемой.
netsh http add urlacl url=https://DNSALIAS:PORT/ user=DOMAINSERVICEACCOUNT
Это предполагает:
- Вы создали запись DNS, указывающую на хост, на котором запущена служба
- ПОРТ был привязан к записи DNS хоста
- Учетная запись службы была создана в AD
Если служба уже привязана к другому порту, вам нужно будет сначала выполнить команду удаления
netsh http delete urlacl url=https://DNSALIAS:PORT/
Также убедитесь, что ваша учетная запись службы имеет разрешения на запись файлов журнала в среде, в которой это будет запущено.