Это проблема основной рабочей группы C ++ 2354 , которая недавно была решена путем удаления разрешения на применение alignas
к типу enum
. (На момент написания, последняя общедоступная версия списка проблем не содержит резолюции, но вы можете найти резолюцию в P1359R0 , который был принят в рабочий проект C ++ в феврале 2019 года и принят как отчет о дефектах (что означает, что исправление предназначено для применения задним числом).
Проблема в том, что у нас было два противоречивых требования:
и перечисление base (включая неявное перечисление base of int
в перечислении с областью действия) указывает базовый тип перечисления, и перечисление должно иметь такое же представление объекта (включая sizeof
и представление всех значений) как его базовый тип, а
и спецификатор выравнивания определяет выравнивание типа, которое, в свою очередь, также должно ограничивать sizeof(E)
(которое по определению является расстоянием между двумя объектами типа E
в массиве) до кратного указанного выравнивания.
Вы не можете иметь оба Таким образом, мы разрешили конфликт, удалив возможность указать выравнивание для типа перечисления.
Лучший совет - не применять спецификатор выравнивания к типу перечисления; реализации перестанут принимать это в какой-то момент. (Однако применение выравнивания к использованию типа в объявлении переменной или нестатического члена данных в порядке.)
Включили ли вы «Вход в качестве службы» для учетной записи?
Пуск -> Панель управления -> Администрирование -> Локальная политика безопасности -> Локальные политики -> Назначение прав пользователя -> Войдите в систему как служба
(убедитесь, что ваша учетная запись прямо или косвенно присутствует в этом списке; также предлагалось установить: Доступ к этому компьютеру из сети; Запретить локальный вход в систему; Вход в систему как пакетное задание )
Также - убедитесь, что у учетной записи есть доступ «Чтение и выполнение», «Список содержимого папки» и «Чтение» к файловой системе, лежащей в основе веб-сайта / приложения.
Попробуйте выполнить следующую команду в C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727
папка:
aspnet_regiis -ga <your_app_pool_user>
Дополнительные сведения о настройке учетной записи пользователя для использования в качестве удостоверения пула приложений см. В следующей статье:
Как: создать учетную запись службы для ASP.NET 2.0 Приложение (MSDN)
What ' Случается, что вы, вероятно, запускаете свое приложение в пуле, в котором выполняются приложения, использующие другую версию .NET framework. Убедитесь, что все ваши приложения в этом пуле работают с одной и той же версией. Если эти приложения должны работать под другой версией, чем эта, создайте новый пул и добавьте в него свое приложение.
Я знаю, что это просто, но проверяли ли вы, что пароль правильный?
Имея эту проблему раньше и не могу отследить причину, по которой я сочувствую! Некоторые указатели, которые могут помочь:
Если ничего не помогает: - Остановите приложение и удалите пул приложений - Удалить пользователя - Повторно создать пользователя - Запустите aspnet_regiis -ga - Настройте новый пул приложений под этим пользователем - Запустите сайт под этим пулом Это вместе с копированием и вставкой сложного пароля, который я использовал, сработало для меня!
Убедитесь, что есть папка c: \ inetpub \ temp \ apppools. Если нет, создайте его.
Do you have a group policy somewehere that is pulling the account out of the iis_wpg group? We have this (or a similar) problem frequently when, for whatever reason, a worker process or a service needs to run under a custom account.