Ошибка IIS 7 и 503 для отказа в доступе к файлам
Я запускаю Windows 7 SP 1 и только что включил IIS 7. Просто пытаясь получить доступ к созданной по умолчанию странице, я получаю ошибку 503, и пул приложений останавливается. Я смотрю в журнале событий, и я нахожу ошибку:
Windows не может скопировать файл \?\C:\Users\Default\AppData\Local\Microsoft\Windows\Temporary Internet Files\SQM\iesqmdata_setup0.sqm в папку \?\C:\Users\TEMP.IIS APPPOOL.000\AppData\Local\Microsoft\Windows\Temporary Internet Files\SQM\iesqmdata_setup0.sqm. Эта ошибка может быть вызвана сетевыми проблемами или недостаточными правами безопасности.
ДЕТАЛЬ - Доступ запрещен.
Я попытался сделать папку TEMP.IIS APPPOOOL.000 доступной для всех. Я пытался сделать пользователей доступными для всех. Не повезло, он все еще умирает с той же ошибкой.
Что здесь происходит, и как его можно исправить?
Ответы
Ответ 1
Похоже, у вас такая же проблема, как и детали в этом форуме форума IIS.NET. Вы не упомянули, есть ли у вас x64 Windows 7 или нет. Подозревайте, что ваша машина разработки некорректно сконфигурирована; звучит как удаление и переустановка IIS7 поможет/исправить.
Предлагаемые курсы действий:
- Откройте IIS и его пулы приложений. Откройте "DefaultAppPool" и другие используемые пулы приложений.
- Нажмите "Дополнительные настройки" для каждого из них. Убедитесь, что для параметра "Загрузить профиль пользователя" установлено значение "False"
- Также убедитесь, что в "Установке по умолчанию пула приложений" параметр "Загрузить профиль пользователя" установлен на "Ложь".
Ответ 2
Я столкнулся с той же проблемой в моей среде разработки (Windows 8.1). Вместо того, чтобы отключить профиль пользователя нагрузки, как это было предложено P.Campbell, я пошел дальше и изменил разрешение sqm файла, чтобы разрешить доступ к изменениям для IUSR, IIS_IUSRS и Network Service. В моем случае, sqm файл не смог показать мне владельца файла, в котором я взял свою учетную запись пользователя.
В основном, моя проблема была решена путем предоставления правильного разрешения для исходных и целевых файлов/папок.
Ответ 3
Нашел ответ здесь - http://forums.iis.net/p/1180636/1992024.aspx
- Откройте диспетчер IIS
- Найдите пул приложений, который вызывает проблему.
- Открыть расширенные свойства
- Измените "Загрузить профиль пользователя" на false
Фиксированный!
Ответ 4
После борьбы со всеми этими пулами приложений в II-м я нашел проблему и решение. Это может вам помочь.
Каждый пул приложений на каждом веб-сайте Microsoft Internet Information Server создает свою собственную учетную запись пользователя и папку в каталоге "c:\Users", когда пул создается и запускается первым. Фактически это виртуальная учетная запись пользователя и должна быть названа для пула приложений, назначенного вашему веб-приложению во II. В большинстве средах разработки это веб-сайт по умолчанию или "DefaultAppPool". Он использует эту временную учетную запись пользователя для запуска пула. На каждом веб-сайте должна быть именованная учетная запись пула пользователей. Эта папка пользователя используется пулом и ASP.NET для кэширования и записи файловых ресурсов и других вещей, используемых II, ASP.NET и этой виртуальной учетной записью.
В некоторых настройках люди не видят эту папку, кроме папки "TEMP" (например, у вас есть), когда к веб-сайту IIs обращаются и используют пул.
Если вы видите папку "TEMP" в папке "Пользователи" , у вас есть сломанная учетная запись пула приложений во II и в реестре. Пул создает папку TEMP в качестве резервной копии для этой виртуальной учетной записи, которая может не иметь правильной настройки безопасности. У меня был этот точный сценарий.
Чтобы исправить это, перейдите в реестр:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ПрофильList
Посмотрите, есть ли у вас учетная запись пользователя SID с расширением ".bak" для учетной записи пользователя DefaultAppPool. Если удалите его и перезагрузите компьютер. Проверьте свой сайт еще раз, убедившись, что он фактически настроен на использование DefaulAppPool. Теперь он должен воссоздать папку "DefaultAppPool" в "Пользователи" , воссоздать запись реестра для пользователя DefaulAppPool, и ваша ошибка должна исчезнуть.
Вы можете удалить пользовательскую папку TEMP в этой точке в папке "Пользователи" . (Имейте в виду, если ваше веб-приложение хранит кешированную информацию, критичную для пользователей веб-сайта, некоторые из них, возможно, придется вставить в новую папку пользователя DefaultAppPool, но для большинства из нас просто удалите ее.)
Я также обнаружил, что мне пришлось добавить эту пустую учетную запись пула виртуальных приложений в мою локальную базу данных, чтобы рабочий процесс и пул приложений accnt могли иметь права на захват данных с SQL Server: просто зайдите в SQL Server и под логинами добавьте "IIs AppPool\DefaultAppPool", а затем назначьте его как пользователя для своих баз данных.
(Кстати, кто бы ни думал о том, что эта система учетных записей пула виртуальных приложений - это орехи... ее путь слишком сложный и запутанный, чтобы разобраться)
После этого все ошибки ушли в Visual Studio для моего веб-приложения, все соединения с данными были созданы отлично, все права на запись в профиль пользователя по умолчанию сохранены правильно, а все перезапуск и сбой пула приложений в II-х годах закончилось полностью.:)