Исключение Asp .net core httpsys — доступ запрещен

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

Также убедитесь, что ваша учетная запись службы имеет разрешения на запись файлов журнала в среде, в которой это будет запущено.