Недавно я столкнулся с ошибкой при попытке разместить мой сайт asp.net с IIS. Я нашел решение, которое многие клянутся.
Решение:
- Добавить IIS_IUSRS с правами чтения для файлов в папке
- Измените метод проверки подлинности IIS на BasicAuthentication
- обновить сайт. Это сработает
( http://vivekthangaswamy.blogspot.com/2009/07/aspnet-website-cannot-read.html )
Что мне добавить в мой файл web.config? Мне никогда не приходилось редактировать это раньше. Вот его текущее содержание:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
</system.web>
</configuration>
Моя ошибка:
Ошибка конфигурации: невозможно прочитать файл конфигурации из-за недостаточных прав доступа.
Файл конфигурации: \? \ C: \ Users ***** \ Documents \ Visual Studio2010 \ WebSites \ PointsForTime \ web.config
asp.net
iis-7
file-permissions
Freesnöw
источник
источник
Ответы:
Там есть проблем с вашим web.config . Ваш веб-сайт работает в процессе. В iis вы можете определить идентичность этого процесса. Идентичность , что ваш веб - сайт в пул приложений работает как ( Network Services, Локальная система и т.д.), должны иметь разрешение на доступ и прочитать файл web.config.
Обновить:
Этот обновленный ответ такой же, как и выше, но немного длиннее, проще и лучше.
Прежде всего : вам не нужно ничего менять в вашем конфигурационном файле. Это нормально . Проблема с разрешениями файла Windows .
Эта проблема возникает из-за ваше приложение не может получить доступ и прочитать файл web.config .
Сделайте файл доступным для группы IIS_IUSRS . Просто щелкните правой кнопкой мыши web.config и выберите Свойства , на вкладке Безопасность добавьте IIS_IUSRS .
Так что же это за IIS_IUSRS?
Ваш веб - сайт является как исполняемый файл. Как и любой исполняемый файл, он должен быть запускаться пользователем и запускаться в соответствии с разрешениями, назначенными этому пользователю.
Когда ваш сайт запускается в IIS , пул приложений вашего веб-сайта ассоциируется с пользователем ( сетевые службы, локальная система и т. Д.) (И может быть изменен в IIS).
Поэтому, когда вы говорите, IIS_IUSRS , это означает, любого пользователя ( сетевые службы, локальная система и т. Д.), которым работает ваш сайт.
И как @Seph упоминается в комментарии ниже : Если ваш компьютер находится в домене , помните, что группа IIS_IUSRS является локальной группой . Также убедитесь, что когда вы пытаетесь найти этого пользователя, проверьте его местоположение на локальном компьютере, а не на корпоративном домене.
источник
IIS_IUSRS
и убедиться, что когда вы пытаетесь найти этого пользователя, проверьте местоположение, оно должно быть установлено на локальный компьютер, а не корпоративный домен.У меня была такая же проблема с правами доступа к
web.config
файлу.Однако моя проблема была вызвана тем, что IIS не удалось загрузить файл конфигурации, поскольку он содержал правила перезаписи URL, и я не установил модуль перезаписи URL IIS на новом сервере.
Решение: Установите модуль перезаписи.
Надеюсь, это сэкономит кому-то несколько часов.
источник
error:
:) +1 Поскольку вместо того, чтобы требовать SSL, я переписал URL-адрес HTTPS, если кто-то связал его без https. Что за загадкаСмена удостоверения с ApplicationPoolIdentity на LocalSystem сделала свою работу;).
Я использую Win7 64 с IIS 7.5
подробнее об идентификации пула приложений в IIS 7.5 и победе 7
источник
У меня была такая же проблема, когда я пытался поделиться корневой папкой сайта с другим пользователем. Некоторая папка потеряла разрешение. Поэтому я следовал инструкциям по добавлению разрешения в группу IIS_IUSRS, как это было предложено Afshin Gh. Проблема в том, что эта группа была недоступна для меня. Я использую Windows 7.
Что я сделал, я просто изменил некоторые шаги:
Это сработало для меня.
источник
C:\
ieC:\Dev
илиC:\Code
и т. Д. Группа безопасностиAuthenticated Users
предоставляется дляC:\
и распространяется в дочерние папки. Однако вC:\Users
папке это распространение останавливается. Поэтому разработчики, подобные мне, которые размещают свой код в домашней папке, должны предоставить доступAuthenticated Users
к этим корневым папкам IIS, чтобы IIS работал.Вам не нужно ничего менять в вашем файле web.config.
Проблема в разрешениях файловой системы. Ваши права доступа к файлам не позволяют пользователю IIS_IUSRS получить доступ к web.config (или, возможно, любому из файлов). Измените права доступа к файлам в Windows, чтобы разрешить учетной записи IIS_IUSRS доступ к ней.
источник
Сделайте файл доступным для группы IIS_IUSRS . Щелкните правой кнопкой мыши свой файл web.config, разверните свойства и на вкладке «Безопасность» добавьте IIS_IUSRS. Дайте группе доступ для чтения / записи.
Если группа НЕ доступна, замените IIS_IUSRS на ComputerName \ IIS_IUSRS.
источник
Перейдите в родительскую папку, щелкните правой кнопкой мыши и выберите « Свойства» . Выберите вкладку « Безопасность », отредактируйте разрешения и нажмите «Добавить» . Нажмите на Дополнительно и Найти сейчас . Выберите IIS_IUSRS, нажмите OK и снова OK . Убедитесь, что у вас есть чек Написать . Нажмите ОК и снова ОК .
Работа выполнена!
источник
Когда вы предоставляете разрешения для IIS_IUSRS, вы должны убедиться, что в разделе IIS / Аутентификация вашего веб-приложения учетные данные анонимной аутентификации используют идентификатор пула приложений, а не IUSR.
источник
По какой-то причине ваш web.config установлен только для чтения. Снимите флажок только для чтения в файле web.config.
источник
Мне нужно было добавить разрешения для IUSR (в дополнение к ISS-IUSRS, как предлагали другие). (См. Также: http://codeasp.net/blogs/raghav_khunger/microsoft-net/2099/iis-7-5-windows-7-http-error-401-3-unauthorized )
источник
Я использовал subst для создания отображения из D: в C:, чтобы сохранить те же настройки, что и у других разработчиков в команде. Это также дало мне те же ошибки, как описано. Удаление это исправило это для меня.
источник
Принятое решение не для меня. Я использую репозиторий Git, и он клонирован в следующую папку
Я сделал новый сайт IIS и указал его на путь. Который не имел разрешений iis_iusrs, предложенных в принятом решении. Когда я добавил разрешения, он все еще не работал.
Он начал работать только тогда, когда я дал следующие разрешения группе «Пользователи», а наследование распространилось касательно разрешений на web.config. Вероятно, следовало применить его только к web.config, чтобы уменьшить площадь атаки.
источник
У нас был веб-сайт, работающий с определенной идентификационной информацией в пуле приложений, только после предоставления этому пользователю доступа на чтение к папке, содержащей файл web.config, он будет работать. Мы отследили это после добавления пользователя «все» с прочитанным, и все работало нормально.
источник
Для меня ошибка обнаружилась во время отладки на моей локальной машине и оказалась связана с базовым web.config, который инициируется .NET Framework при компиляции сайта. Мой файл C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ web.config содержал нераспознанный элемент (folderLevelBuildProviders). Исправление это исправило ошибку 500.19.
Смотрите это: IIS Manager не может настроить компиляцию .NET в приложениях .NET 4
источник
Изменение идентификатора модели процесса на LocalSystem устранило эту проблему для меня. Вы можете найти этот параметр, если щелкнуть правой кнопкой мыши пул приложений и выбрать «Расширенные настройки». Я использую IIS 7.5.
источник
Щелкните правой кнопкой мыши Web.Config => Tab Security => Button Edit => Button Add => Button Advanced => Button Find Now => В результатах поиска выберите свою группу (в нашем случае «IIS_IUSRS») => Ok => Ok => Хорошо
источник
Это случилось с нами, когда приложение IIS имеет виртуальный каталог с физическим путем, который содержит прямую косую /черту вместо обратной косой черты \. Это было случайно сделано с использованием API управления PowerShell для IIS во время нашего непрерывного процесса доставки.
Пример плохой конфигурации -
applicationHost.config
Убедитесь, что
physicalPath
атрибут не содержит косые черты /, только обратные косые черты\Пример исправленной конфигурации -
applicationHost.config
источник
C:\inetpub\MySite\\MyService
. Сменив его на один обратный слэш, сработалоЯ решил эту проблему, добавив разрешение на чтение в папку для пользователя пула приложений (WIN SERVER 2008 R2): C: \ Windows \ System32 \ inetsrv \ config
Немного предыстории: наш сервер был взломан с помощью классической ошибки, когда у пользователя приложения было больше прав, чем у него (локальный администратор).
Чтобы исправить это, мы создали нового пользователя домена, у которого были только разрешения на папку приложения с минимально необходимыми правами, и назначили его в качестве пользователя пула приложений. чем мы столкнулись в вопросе, и это было решением наших проблем.
источник
Перенесите свой проект на какой-нибудь диск, отличный от C: у меня сработало с той же ошибкой.
источник
Это может произойти, если ваше приложение находится в виртуальном каталоге, а путь к файлам - подключенный диск.
Если вы измените путь к файлам на локальный диск, это решит проблему, если это действительно ваша проблема.
источник
Все приведенные ответы действительны и работают при разных обстоятельствах.
Для меня перезапуск Visual Studio работал.
источник
Я также получал сообщение «Не удается прочитать файл конфигурации из-за недостаточных разрешений». Оказывается, ограничения ISAPI и CGI в IIS для ASP.NET 4.0 32-разрядных и 64-разрядных были отключены. Отметив их как разрешенные, я решил проблему.
источник
Приведенные выше ответы были полезны, но в случае, если это кому-нибудь поможет - у меня возникла именно эта проблема, и оказалось, что я (сеть Windows) разделяю корневую папку, из которой размещался сайт. Мы убили общий ресурс и добавили разрешение «Пользователи» на чтение / выполнение, и все снова заработало.
Я подозреваю, что доля испортила это.
источник
Была эта проблема с виртуальным приложением. Все разрешения были установлены. IIS_IUSRS, AppPoolIdentity, а затем дал полный доступ к каждому. Ничего не получалось. Перезапущен apppool, сайт и IIS, но не идти.
Удалил виртуальное приложение и снова добавил его с нуля, и он начал работать.
Хотел бы я знать, что это решило.
источник
проверьте, не помечен ли файл как доступный только для чтения , несмотря на разрешение IIS_IUSRS, он отобразит то же сообщение.
источник
У меня было это сообщение об ошибке, которое оказалось из-за моей физической папки, расположенной на сетевом диске, а не на локальном диске. Кажется, разрешения на таких дисках по умолчанию могут быть разными. Например, в то время как местоположение на локальном диске давало разрешение пользователям локального компьютера, местоположение в сети - нет.
Кроме того, принятый ответ не работает для такого случая. Локальные пользователи или пользователи IIS не были доступны для назначения разрешений. Решением было переместить физическую папку на локальный диск.
источник
У меня была та же проблема, и после того, как я выполнил все, что написано здесь как ответы, она все еще воспроизводилась. Вторая половина проблемы заключалась в том, что .NET был отключен в разделе «Включение или отключение функций Windows»
источник
Иногда, если это новый сервер, вам необходимо настроить или установить функцию ASP.NET в IIS, чтобы он мог прочитать ваш файл web.config.
В моем случае это было причиной.
источник
В моем случае я пытался разместить страницы с подключенного диска (sub). Проблема в том, что саб был запущен под моей учетной записью, и пользователь IIS не может видеть тот же диск
источник
Я дал разрешение и использовал ICACLS.exe, но не работал. Затем я изменил физический путь, и он успешно работал.
(IIS 8.5 windows 2012 R2)
источник