Это не вопрос моей конкретной проблемы, поскольку она более или менее решена, а вопрос IIS / Python и учетных записей пользователей в целом.
У меня есть сценарии Python, которые я запускаю с IIS 7.5 (Mercurial с использованием сценария hgweb.wsgi). Один из плагинов (больших файлов) получает разрешение на чтение и запись файлов.
Сценарий пытался записать файлы во временный каталог, проверяя APPDATA
и LOCALAPPDATA
переменные среды, которые возвращали C:\Windows\System32\config\systemprofile\AppData\Local
, и сбой из-за разрешений.
Я пробовал распечатать USERNAME
переменная среды, но независимо от того, какого пользователя я установил в удостоверении пула приложений IIS, она всегда возвращала MACHINENAME$
Итак, как я могу запустить сценарии Python в IIS, чтобы переменные среды указывали на правильное домашнее местоположение пользователя? Или это просто ошибка разработчика (у Hg не было проблем с разрешениями, только расширение largefiles)?
Кроме того, когда у меня изначально были репозитории в C:/Data
, файлы, записанные большими файлами в этот каталог, имеют значок блокировки, а разрешения были SYSTEM
: полный контроль и Administrators
: полный контроль, владелец установлен на Administrators
(группа, а не пользователь-администратор). После записи файла его больше нельзя было прочитать. Даже если бы я дал Everyone
полный контроль над C:/Data
каталог, новые файлы все равно будут заблокированы, если я не отредактирую разрешения вручную. Опять же, у Hg не было этой проблемы, только файлы, записанные большими файлами.
Попробуйте использовать Монитор процесса чтобы разобраться в проблемах с разрешениями.
Вы можете использовать этот инструмент, чтобы узнать, какой пользователь пытается получить доступ к файлу, какой процесс и другие важные детали, которые удобны для устранения неполадок с разрешениями IIS.