Должна ли учетная запись сетевой службы получать разрешения для временных файлов по умолчанию?
Недавно я работал над созданием PDF-файла из Crystal Reports через веб-форму. Это сбой, который я определил, чтобы быть вызванным настройками разрешений в директории c:\windows\temp. Я дал учетной записи сетевой службы полный доступ к этой папке, что быстро решило проблему. Но есть ли причина, по которой учетная запись сетевой службы не имела этих разрешений по умолчанию?
Рик Страл задает этот вопрос здесь. Похоже, с этим не должно быть никаких проблем, но Рик не понимал, почему по умолчанию установлено именно так.
Веб-сервер Windows Server 2003
3 ответа
В наши дни вариант по умолчанию будет более безопасным. Я не думаю, что есть какая-то другая причина.
У меня была та же проблема, что и у вас, и в моем окружении просто дали разрешение и пошли дальше.
Этот пост предполагает, что это ошибка Crystal Reports, которая явно ссылается на%WINDIR%\Temp вместо использования API, такого как Path.GetTempPath(). На самом деле я видел, как Path.GetTempPath () возвращает%WINDIR%\Temp при запуске под учетной записью сетевой службы в Windows 2003.
Этот пост о создании временных файлов содержит комментарии, которые поддерживают использование временной папки Windows.
В статье MSDN об использовании учетной записи сетевой службы говорится, что "если вашему приложению ASP.NET необходимо использовать файлы или папки в других местах, вы должны специально разрешить доступ". Это говорит о том, что ограничение по умолчанию для временной папки - не потому, что временная папка была выделена, но все остальные расположения, кроме корневой папки IIS, по умолчанию ограничены.
%windows%\temp не для общих задач. Совершенно очевидно, что Crystal Reports злоупотребляет этим каталогом. Это часто случается, когда разработчики слишком ленивы загружать свои машины с чем-либо, кроме учетной записи администратора.
Каждый пользователь (включая сетевую службу) имеет свое собственное временное пространство с полными правами доступа в разделе " Документы и настройки". Победители не действуют как CR, и используют свои собственные временные пространства.
Короче говоря, нет ничего плохого в разрешениях по умолчанию для win\temp. Я считаю, что это просто предназначено для внутренней работы Windows. (Опять же, для всех заинтересованных сторон было бы гораздо лучше, если бы этот каталог никогда не существовал.)