Все, у меня есть директория ~ / temp в моем веб-корне на веб-сервере.Допустим, C: \ inetpub \ myapp \ temp
, и у меня есть метод в коде класса страницы, который удаляет все файлы там.Все работает хорошо.
protected CleanTemp() {
// clean all the files in tmp dir
Array.Foreach...
}
Проблема в том, что если я создаю таймер в моем Global.aspx, который пытается выполнить такую очистку таким же образом, система перечисляет файлы в временном каталоге, но для каждогоиз них он возвращает исключение о том, что у пользователя нет необходимых прав доступа:
[Global.aspx]
void Application_Start(object sender, EventArgs e) {
PhisicalTmpFolder = Server.MapPath(~/temp);
// create new timer
System.Timers.Timer timScheduledTask = new System.Timers.Timer();
timScheduledTask.Interval = 20 * 60 * 1000.0;
timScheduledTask.Enabled = true;
timScheduledTask.Elapsed += new System.Timers.ElapsedEventHandler(timScheduledTask_Elapsed);
}
void timScheduledTask_Elapsed(object sender, System.Timers.ElapsedEventArgs e) {
// clean all the files in tmp dir
Array.ForEach(
Directory.GetFiles(PhisicalTmpFolder),
delegate(string path) {
try {
File.Delete(path); i++;
} catch (Exception ex) {
if (_logger != null) _logger.Error(ex.Message, ex);
}
}
);
}
Как я могу сказать таймеру, что он должен работать стакое же право доступа к приложению?
Заранее спасибо, Джанпьеро