Ошибка 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-х годах закончилось полностью.:)