IIS Express. Либо не был указан требуемый уровень олицетворения, либо указан неверный уровень олицетворения. (0x80070542) - PullRequest
0 голосов
/ 02 апреля 2020

У меня возникла странная проблема при тестировании Asp. Net Webforms приложения с Windows аутентификацией и IIS Express.

Вот контекстная информация: ОС:

OS Name Microsoft Windows Server 2016 Standard
Version 10.0.14393 Build 14393

Visual Studio 2019:

Microsoft Visual Studio Enterprise 2019
Version 16.4.6
VisualStudio.16.Release/16.4.6+29905.134
Microsoft .NET Framework
Version 4.8.03761

Приложение: Asp. net WebForms, MVC 5, приложение Web Api 2.0 с Windows аутентификацией. Я использую Chrome & FireFox для тестирования приложения и IIS Express 10.

У меня есть две windows учетные записи, назовем их Account1 и Account2 в домене под названием SomeDomain, который является основным доменом. Обе учетные записи имеют права локального администратора на этой виртуальной машине. UA C включен на этой виртуальной машине. Я не запускаю Visual Studio от имени администратора.

Когда я занимаюсь разработкой, я вошел в систему как Account1. У меня нет проблем с этой учетной записью. Тем не менее, когда я вхожу в приложение под учетной записью Account2 (когда меня запрашивает браузер), я перехожу на страницу по умолчанию, но затем нажимаю на некоторые другие страницы и мне снова предлагается пароль. Иногда одна страница может работать, и во второй раз, когда я захожу на эту страницу, меня просят ввести пароль! Очень странно Я должен сказать, что у меня никогда не было такой проблемы на предыдущих виртуальных машинах разработки с Windows Server 2012 и Visual Studio 2017.

Теперь я начал исследовать, чтобы увидеть, что происходит. Прежде всего, Account2 имеет доступ для чтения к каталогу приложения. Я дважды проверил это, используя функцию Effective Access в Windows -> диалоге безопасности.

Я проверил файл журнала IIS Express, и вот ошибка:

<EventData>
  <Data Name="ContextId">{8000002A-0001-FA00-B63F-84710C7967BB}</Data>
  <Data Name="ModuleName">IIS Web Core</Data>
  <Data Name="Notification">2</Data>
  <Data Name="HttpStatus">500</Data>
  <Data Name="HttpReason">Internal Server Error</Data>
  <Data Name="HttpSubStatus">0</Data>
  <Data Name="ErrorCode">2147943746</Data>
  <Data Name="ConfigExceptionInfo"></Data>
 </EventData>
 <RenderingInfo Culture="en-US">
  <Opcode>MODULE_SET_RESPONSE_ERROR_STATUS</Opcode>
  <Keywords>
   <Keyword>RequestNotifications</Keyword>
  </Keywords>
  <freb:Description Data="Notification">AUTHENTICATE_REQUEST</freb:Description>
  <freb:Description Data="ErrorCode">Either a required impersonation level was not provided, or the provided impersonation level is invalid.
 (0x80070542)</freb:Description>
 </RenderingInfo>

Поиск в интернете видно, что эти ошибки мучают разработчиков уже очень давно. Но сейчас 2020?

1 Ответ

1 голос
/ 02 апреля 2020

Оказывается, проблема возникла из-за того, что я не запускал VS Studio 2019 в качестве администратора. Как только я установлю, что у меня больше нет проблем.

...