ASP.Net какая учетная запись пользователя работает веб-службы на IIS 7?
Я хочу знать, какая учетная запись выполняет мою веб-службу / приложение, чтобы я мог назначить доступ на чтение / запись для этой учетной записи. Я исследовал и вижу, что большинство источников упоминают об учетной записи ASPNET, но на моем сервере 2008 года нет никакой учетной записи с именем ASPNET. Некоторые источники говорят, что ASPNET заменяется NETWORK SERVICE?
Кроме того, я могу назначить другой учетной записи пользователя для запуска службы? И как это сделать?
Спасибо,
5 ответов
Посмотрите на идентичность пула приложений, в котором выполняется ваше приложение. По умолчанию это будет учетная запись сетевой службы, но вы можете изменить это.
По крайней мере, так работает сервер 2003, не знаю, изменились ли некоторые детали для сервера 2008.
Server 2008
Запустите диспетчер задач. Найдите процесс w3wp.exe (описание Рабочий процесс IIS). Проверьте столбец "Имя пользователя", чтобы узнать, под кем выполняется процесс IIS.
В графическом интерфейсе IIS вы можете настроить пул приложений для запуска от имени определенного пользователя: Пул приложений по умолчанию Дополнительные параметры Удостоверение
Вот информация от Microsoft по настройке идентификаторов пула приложений:
http://learn.iis.net/page.aspx/624/application-pool-identities/
У меня было куча проблем с этим, а затем нашел отличное решение:
Создайте файл в текстовом редакторе, который называется whoami.php, с приведенным ниже кодом в качестве его содержимого, сохраните файл и загрузите его в public_html (или как там у вас есть имя root вашего каталога веб-сервера). Он должен вывести полезную строку, которую вы можете использовать для отслеживания пользователя, на котором работает веб-сервер, мой вывод был "php работает как пользователь: nt полномочия \iusr", что позволило мне отследить разрешения, которые мне нужно было изменить для пользователь "IUSR".
<?php
// outputs the username that owns the running php/httpd process
// (on a system with the "whoami" executable in the path)
echo 'php is running as user: ' . exec('whoami');
?>
Вы должны найти правильного пользователя, которому нужно использовать временную папку. На своем компьютере я перехожу по указанной выше ссылке и нахожу специальную папку c:\inetpub, которая используется для запуска ее веб-служб. Я проверяю, какие пользователи могут использовать эти папки, и нахожу что-то вроде этого: имя_компьютера \ iis_isusrs
Основная проблема возникает, когда вы пытаетесь добавить его ко всем разрешениям на временную папку, я собирался в свойствах, вкладку безопасности, кнопку редактирования, добавить кнопку пользователя, а затем я положил iis_isusrs
и кнопка "проверить имена"
Он ничего не находит. Причина в том, что в моем случае он выглядит ( windows 2008 r2 iis 7) на месте pdgs.local. Вы должны перейти в форму "Выбор пользователей или групп", нажать кнопку "Дополнительно", нажать кнопку "Местоположения" и увидит определенную иерархию
- Имя компьютера
- Весь каталог
- pdgs.local
Поэтому, когда вы пытаетесь добавить пользователя, его имя поиска на pdgs.local. Вы должны выбрать имя компьютера и нажать ОК, нажмите "Найти сейчас"
Найдите IIS_IUSRS в столбце Имя (RDN), нажмите ОК. Итак, мы возвращаемся к форме "Выбор пользователей или групп" с новым и правильным подчеркиванием пользователя
нажмите "ОК", разрешите полный контроль и снова нажмите "ОК".
Это все, надеюсь, это поможет,
Хосе из Моралзарзаля (Мадрид)