Права на папочку?
Права на папочку?
Кусок кода, проверяющего структуру на диске :
string appDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);if(appDataFolder == string.Empty){appDataFolder = @"C:\inetpub\logs";}string dumpFolder = Path.Combine(appDataFolder, PathTo);if(!Directory.Exists(dumpFolder)){Directory.CreateDirectory(dumpFolder);}string backupFolder = Path.Combine(dumpFolder, BackupDir);if(!Directory.Exists(backupFolder)){Directory.CreateDirectory(backupFolder);}
В ВинАпп - все работает нормально - ДатаФолдер - получается, папочки создаются.
Под ИИС - наступает большая задница. Юзер, который создается для пула, не имеет своего профайла - ДатаФолдер будет пустой строкой.
Ну это проверяется и подставляется место куда пишутся логи. Бо, это тоже часть логов...
А дальше - идет облом.
Нет пермита на запись. И нет юсера которому можно дать права на запись - там только спец.аккаунт для апппула.
Можно поменять идентити от которого работает апппул на LocalSystem - но в этом случае папочки будут где-то глубоко в С:\Виндовс\..., что мне совершенно не нравится.
Можно создать специального юзера с правами на запись в логс и задать его для апппула, но полиси требует смены пароля каждые 28 дней и поменять этo нельзя...
В общем - непонятно где копать.
Нужны права на создание папок и запись в файлы в этих папках, работающее под ВинЮсером и под ИисЮсером.
Может быть, но не есть хорошо.
Бо, апппуллов уже с десяток и месиво SQL из разных апппуллов будет нужно как-то разбирать.
Эта же проблема и у LocalSystem.
Ты определись, что тебе надо: права на запись в папку (C:\inetpub\logs) или различать апппуллы? Или что-то третье?
Так оно по-отдельности мне не интересно - мне надо куда-то сбросить поток выполняемых запросов, текстом, для последующего анализа при наличии проблем. Но в параллели работают несколько винапп и вебапп в своих пулах. Пимпочку для писать-не-писать Я, разумеется, приделал, но такого разделения похоже недостаточно...
А так - надо писать туда где у вин-юзера лежат аппдата - с этим проблем нет, ну а для иис - в папочку логов, в подпапочку апппулла - тут пока затыk.
Вроде так.
У самого ИИС - разумеется - он свои логи пишет.
А вот у пуула - нету - нет такого юсера - виртуальный он...
Т.е. точно, что IUSR имеет права на эту папку и находится в списке юзеров ?
IUSR вроде как не при делах - от его имени ничего не делается.
Пыххх... сейчас решил перепроверить что там с юзверем от которого запускается процесс ИИС... фиг там - сервер - отвечает и управляем, а процесса сервера - нет в списке процессов...
В общем - наТо чи-нЫть сЫстему...