Не удается прочитать файл конфигурации из-за недостаточных разрешений
недавно я столкнулся с ошибкой при попытке разместить мой asp.net сайт с IIS. Я нашел решение, которым многие клянутся.
устранение:
- добавить IIS_IUSRS с разрешением на чтение файлов в папке
- измените метод проверки подлинности IIS на BasicAuthentication
- обновить сайт. Это будет работать
(http://vivekthangaswamy.blogspot.com/2009/07/aspnet-website-cannot-read.html)
что я могу добавить к моему web.хотя конфигурационный файл? Мне никогда не приходилось редактировать его перед. Вот ее содержание:
<?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 * * * * * DocumentsVisual Studio2010WebSitesPointsForTimeweb.конфигурации
30 ответов:
здесь нет проблем с вашей сети.конфигурации. Ваш веб-сайт работает в рамках процесса. В iis можно определить идентификатор этого процесса. Элемент identity это, ваш веб-сайт приложение бассейн работает как (Сетевые Службы, Локальная Система и т. д. ...), должны иметь разрешение на доступ и чтение интернета.конфигурационный файл.
обновление:
этот обновленный ответ, такой же, как и выше, но немного дольше, проще и лучше.
в первую очередь: вам не нужно ничего менять в вашем конфигурационном файле. все в порядке. Проблема заключается в права доступа к файлам windows.
эта проблема возникает потому, что приложения не может access и веб-читал.конфигурации.
сделать файл доступным для группу iis_iusrs группы. Просто Правой Кнопкой Мыши сеть.конфигурации и нажмите кнопку свойства, под безопасность tab, добавить группу iis_iusrs.
Так что же это за штука IIS_IUSRS?
код web site и как exe. Как и любой EXE-файл, он должен быть!--1-- > запускается пользователем и работает согласно разрешения назначенные этому пользователю.
когда ваш сайт запускается в IIS,приложения Бассейн веб-сайт (Сетевые Службы, Локальная Система и т. д. ...) (и может быть изменен в IIS)
поэтому, когда вы говорите группу iis_iusrs, это значит любой (Сетевые Службы, Локальная Система и т. д. ...), что ваш сайт работает как.
и @Seph упомянутые в комментарий ниже:если ваш компьютер находится в домене, помните, что группу iis_iusrs группа локальная группа. Также убедитесь, что при попытке найти этого пользователя проверьте расположение он должен быть установлен на локальный компьютер, а не корпоративный домен.
Примечание редактора: делать то, что говорит этот ответ опасно! Учетная запись LocalSystem-это a ...
полностью доверенная учетная запись, больше, чем учетная запись администратора. В одном поле нет ничего, что эта учетная запись не может сделать, и у нее есть право доступа к сети как к машине (для этого требуется Active Directory и предоставление учетной записи машины разрешений на что-то)
изменение идентификатора с ApplicationPoolIdentity до LocalSystem сделали работу ;).
Я использую win7 64 с IIS 7.5
подробнее о идентификатор пула приложений в IIS 7.5 и win 7
У меня было то, что казалось той же проблемой разрешений на .
Однако моя проблема была вызвана тем, что IIS не смог загрузить файл конфигурации, поскольку он содержал правила перезаписи URL, и я не установил модуль перезаписи URL IIS на новом сервере.устранение: установите модуль перезаписи.
Надеюсь, это сэкономит кому-то несколько часов.
У меня была такая же проблема, когда я пытался поделиться корневую папку сайта с другим пользователем. Некоторые папки потеряли разрешение. Поэтому я выполнил шаги, чтобы добавить разрешение на группу iis_iusrs группа, как предложил Афшин Г. Х. Проблема в том, что эта группа была недоступна для меня. Я использую windows 7.
Что я сделал, я просто изменил некоторые действия:
- щелкните правой кнопкой мыши на родительской папке (кто потерял разрешение),
- Свойства => Безопасность =>В Группе " или имена пользователей:",
- Нажмите Кнопку "Редактировать"...
- откроется окно "разрешение для вашей папки".
- в разделе "Имена групп или пользователей:" нажмите кнопку Добавить... btn,
- тип Authen и нажмите Проверить имена,
- вы увидите полное название группы"Авторизованные Пользователи"
- нажмите ok = > применить.
- это должно снова включить привилегии.
Это сработало для меня.
вам не нужно ничего менять в своей сети.конфиг.
проблема заключается в разрешениях файловой системы. Ваши права доступа к файлам не позволяют пользователю IIS_IUSRS получить доступ к сети.config (или, возможно, любой из файлов). Измените их права доступа к файлам в windows, чтобы разрешить учетной записи IIS_IUSRS доступ к нему.
перейдите в родительскую папку, щелкните правой кнопкой мыши и выберите свойства. Выберите безопасность вкладка, редактировать разрешения и добавить. Нажмите на Advanced и Найти. Выберите группу iis_iusrs и нажмите кнопку ОК и ОК снова. Убедитесь, что у вас есть проверка написать. Нажмите ОК и ОК снова.
работу!
сделать файл доступным для группу iis_iusrs группы. Щелкните правой кнопкой мыши на веб-сайте.конфигурация, разверните свойства и на вкладке Безопасность добавьте IIS_IUSRS. Предоставьте группе доступ на чтение/запись.
когда группа не доступно, замените IIS_IUSRS на Имя_компьютера\IIS_IUSRS
при предоставлении разрешений на группу iis_iusrs вы должны проверить, что в IIS / Authentication раздел вашего веб-приложения, учетные данные анонимной проверки подлинности использует идентификатор пула приложений, а не IUSR.
Почему-то ваш веб.конфигурация задается только для чтения. Снимите флажок только для чтения в интернете.конфигурационный файл.
Мне нужно было добавить разрешения на IUSR (в дополнение к ISS-IUSR, как предлагали другие). (Смотреть также: http://codeasp.net/blogs/raghav_khunger/microsoft-net/2099/iis-7-5-windows-7-http-error-401-3-unauthorized)
Я использовал subst для создания сопоставления от D: до C: чтобы сохранить ту же настройку, что и другие разработчики в команде. Это также дало мне те же ошибки, как описано. Удаление этого исправило это для меня.
У нас был веб-сайт, работающий с определенным идентификатором в apppool, только после предоставления этому пользователю доступа для чтения к папке, содержащей веб.config будет работать. Мы отследили это после добавления пользователя " все " с read, и все работало нормально.
для меня ошибка появилась во время отладки на моей локальной машине и оказалась связанной с базовой сетью.конфигурация, которая инициируется платформой .NET Framework при компиляции веб-сайта. Мой C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config файл имел нераспознанный элемент (folderLevelBuildProviders). Исправить Исправлена ошибка 500.19.
Это: диспетчер IIS не может настроить компиляцию .NET в приложениях .NET 4
изменение идентификатора модели процесса в LocalSystem исправило эту проблему для меня. Вы можете найти этот параметр, если щелкните правой кнопкой мыши на пуле приложений и выберите "Дополнительные настройки". Я запускаю IIS 7.5.
щелкните правой кнопкой мыши веб.Конфиг => вкладка "безопасность" = > кнопка "правка" = > кнопка "Добавить" кнопка => Дополнительно => найти = > в результатах поиска выберите вашу группу(в нашем случае "группу iis_iusrs") => Ок => ок=> ок
Это случилось с нами, когда приложение IIS есть Виртуальный Каталог С Физический Путь, который содержит косую черту / вместо обратной косой черты \. Это было случайно сделано с помощью API управления powershell для IIS во время нашего непрерывного процесса доставки.
Плохой Пример Конфигурации -
applicationHost.config<application path="/MySite/MyService" applicationPool="MyAppPool" enabledProtocols="http"> <virtualDirectory path="/" physicalPath="C:\inetpub\MySite/MyService" /> </application>убедитесь, что
physicalPathатрибут не содержит косых черт /, только обратные косые черты \Исправлен Пример Конфигурации -
applicationHost.config<application path="/MySite/MyService" applicationPool="MyAppPool" enabledProtocols="http"> <virtualDirectory path="/" physicalPath="C:\inetpub\MySite\MyService" /> </application>
Я решил эту проблему, добавив разрешение на чтение в папку для пользователя пула приложений (WIN SERVER 2008 R2): C:\Windows\System32\inetsrv\config
немного предыстории: Наш сервер был взломан с использованием классической ошибки, где пользователь приложения имел больше разрешений, что он должен (локальный администратор).
чтобы исправить это, мы создали нового пользователя домена, который имел только разрешения на папку приложения, с минимальными необходимыми правами и назначил его в качестве пользователя пула приложений. чем мы ударили в этом вопросе и это было решение наших проблем.
принятое решение не для меня. Я использую git repo, и он клонируется в следующую папку
c:\users\myusername\source\repos\myWebSiteЯ сделал новый сайт IIS и указал его на путь. У которого не было разрешений iis_iusrs, предложенных в принятом решении. Когда я добавил разрешения, он все еще не работал.
Он начал работать только тогда, когда я дал следующие разрешения группе "пользователи" и наследование каскадировало разрешения на web.конфиг. Наверное, надо было применил его только к сети.конфиг для уменьшения поверхности атаки.
Я также получал "не могу прочитать файл конфигурации из-за недостаточных разрешений". Оказывается, ограничения ISAPI и CGI в IIS для обоих ASP.NET 4.0 32bit и 64bit был установлен в deny. Маркировка их обоих позволила исправить мою проблему.
была эта проблема с виртуальным приложением. Все разрешения были установлены. IIS_IUSRS, AppPoolIdentity а затем дал полный доступ ко всем. Ничего не получалось. Перезапустить пул приложений, сайтов и IIS, но не пойду.
удалил виртуальное приложение и добавил его снова с нуля, и он начал работать.
хотел бы я знать, что решило его.
проверьте, не помечен ли файл как только для чтения, несмотря на разрешение IIS_IUSRS он будет отображать то же сообщение.
У меня было это сообщение об ошибке, которое оказалось связано с тем, что моя физическая папка находится на сетевом диске, а не на локальном диске. Похоже, разрешения на таких дисках по умолчанию могут быть разными. Например, если локальное расположение диска давало разрешение пользователям локального компьютера, то сетевое расположение-нет.
далее, принятый ответ не работает для такого случая. Локальные пользователи или пользователи IIS не были доступны для назначения разрешений. Решение состояло в том, чтобы переместить физическую папку на локальный диск.
У меня была та же проблема, и после выполнения всех вещей, написанных здесь в качестве ответов, он все еще воспроизводился. Вторая половина проблемы заключалась в том, что .NET был отключен в разделе "включение или выключение функций Windows"
иногда, если это новый сервер, который вам нужно настроить или установить ASP.NET функция на IIS для него, чтобы иметь возможность читать ваш интернет.конфигурационный файл.
в моем случае это было причиной.
в моем случае я пытался разместить страницы с подключенного диска (subst). Проблема в том, что subst был запущен под моей учетной записью, и пользователь IIS не может видеть тот же диск
Я дал разрешение и использовал ICACLS.exe, но не сработало. Затем я изменил физический путь, и он успешно работал.
(IIS 8.5 windows 2012 R2)
конечно, это проблема с разрешениями. Я сделал следующие шаги, и это сработало для меня.
- выберите ваш сайт или приложение в левом углу. В большинстве случаев это будет под веб-сайт по умолчанию.
- нажать на кнопку основные параметры в правом углу В диспетчере IIS 7 или выше.
- клик подключиться.
- использовать "Конкретные", нажмите на кнопку Set.
- Enter ваше имя пользователя и пароль. как домен\имя пользователя. для меня это было как ABC\rrajkumar, введите пароль.
- перезапустите IIS, просмотрите свой веб-сайт. Это должно сработать сейчас.
- перейти в IIS, (сайты)
- Правой Кнопкой Мыши на проект в сайтах.Введите описание изображения здесь
и нажмите на кнопку изменить разрешения.
перейти к безопасности.
нажмите на кнопку Изменить.
нажать кнопку "Добавить". введите ИМЯ_КОМПЬЮТЕРА\IIS_USERS
или
нажмите кнопку вперед.
нажмите кнопку Найти кнопка.
и есть возможность выбрать. выберите IIS_USERS и нажмите кнопку ОК...ладно....ладно .



Comments