Не удается прочитать файл конфигурации из-за недостаточных разрешений



недавно я столкнулся с ошибкой при попытке разместить мой asp.net сайт с IIS. Я нашел решение, которым многие клянутся.




устранение:




  1. добавить IIS_IUSRS с разрешением на чтение файлов в папке

  2. измените метод проверки подлинности IIS на BasicAuthentication

  3. обновить сайт. Это будет работать




(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.конфигурации


17538   30  

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

enter image description here

У меня было то, что казалось той же проблемой разрешений на .
Однако моя проблема была вызвана тем, что IIS не смог загрузить файл конфигурации, поскольку он содержал правила перезаписи URL, и я не установил модуль перезаписи URL IIS на новом сервере.

устранение: установите модуль перезаписи.
Надеюсь, это сэкономит кому-то несколько часов.

У меня была такая же проблема, когда я пытался поделиться корневую папку сайта с другим пользователем. Некоторые папки потеряли разрешение. Поэтому я выполнил шаги, чтобы добавить разрешение на группу iis_iusrs группа, как предложил Афшин Г. Х. Проблема в том, что эта группа была недоступна для меня. Я использую windows 7.

Что я сделал, я просто изменил некоторые действия:

  1. щелкните правой кнопкой мыши на родительской папке (кто потерял разрешение),
  2. Свойства => Безопасность =>В Группе " или имена пользователей:",
  3. Нажмите Кнопку "Редактировать"...
  4. откроется окно "разрешение для вашей папки".
  5. в разделе "Имена групп или пользователей:" нажмите кнопку Добавить... btn,
  6. тип Authen и нажмите Проверить имена,
  7. вы увидите полное название группы"Авторизованные Пользователи"
  8. нажмите ok = > применить.
  9. это должно снова включить привилегии.

Это сработало для меня.

вам не нужно ничего менять в своей сети.конфиг.

проблема заключается в разрешениях файловой системы. Ваши права доступа к файлам не позволяют пользователю IIS_IUSRS получить доступ к сети.config (или, возможно, любой из файлов). Измените их права доступа к файлам в windows, чтобы разрешить учетной записи IIS_IUSRS доступ к нему.

перейдите в родительскую папку, щелкните правой кнопкой мыши и выберите свойства. Выберите безопасность вкладка, редактировать разрешения и добавить. Нажмите на Advanced и Найти. Выберите группу iis_iusrs и нажмите кнопку ОК и ОК снова. Убедитесь, что у вас есть проверка написать. Нажмите ОК и ОК снова.

работу!

сделать файл доступным для группу iis_iusrs группы. Щелкните правой кнопкой мыши на веб-сайте.конфигурация, разверните свойства и на вкладке Безопасность добавьте IIS_IUSRS. Предоставьте группе доступ на чтение/запись.

когда группа не доступно, замените IIS_IUSRS на Имя_компьютера\IIS_IUSRS

при предоставлении разрешений на группу iis_iusrs вы должны проверить, что в IIS / Authentication раздел вашего веб-приложения, учетные данные анонимной проверки подлинности использует идентификатор пула приложений, а не IUSR.

enter image description here

Почему-то ваш веб.конфигурация задается только для чтения. Снимите флажок только для чтения в интернете.конфигурационный файл.

Мне нужно было добавить разрешения на 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

немного предыстории: Наш сервер был взломан с использованием классической ошибки, где пользователь приложения имел больше разрешений, что он должен (локальный администратор).

чтобы исправить это, мы создали нового пользователя домена, который имел только разрешения на папку приложения, с минимальными необходимыми правами и назначил его в качестве пользователя пула приложений. чем мы ударили в этом вопросе и это было решение наших проблем.

переместите свой проект на другой диск, кроме C: Работал на меня с той же ошибкой.

принятое решение не для меня. Я использую git repo, и он клонируется в следующую папку

c:\users\myusername\source\repos\myWebSite

Я сделал новый сайт IIS и указал его на путь. У которого не было разрешений iis_iusrs, предложенных в принятом решении. Когда я добавил разрешения, он все еще не работал.

Он начал работать только тогда, когда я дал следующие разрешения группе "пользователи" и наследование каскадировало разрешения на web.конфиг. Наверное, надо было применил его только к сети.конфиг для уменьшения поверхности атаки.

User Pemissions

убедитесь, что ваш веб.конфигурационный файл не помечен только для чтения

Я также получал "не могу прочитать файл конфигурации из-за недостаточных разрешений". Оказывается, ограничения 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)

конечно, это проблема с разрешениями. Я сделал следующие шаги, и это сработало для меня.

  1. выберите ваш сайт или приложение в левом углу. В большинстве случаев это будет под веб-сайт по умолчанию.
  2. нажать на кнопку основные параметры в правом углу В диспетчере IIS 7 или выше.
  3. клик подключиться.
  4. использовать "Конкретные", нажмите на кнопку Set.
  5. Enter ваше имя пользователя и пароль. как домен\имя пользователя. для меня это было как ABC\rrajkumar, введите пароль.
  6. перезапустите IIS, просмотрите свой веб-сайт. Это должно сработать сейчас.
  1. перейти в IIS, (сайты)
  2. Правой Кнопкой Мыши на проект в сайтах.Введите описание изображения здесь

и нажмите на кнопку изменить разрешения.

  1. перейти к безопасности.

  2. нажмите на кнопку Изменить.

  3. нажать кнопку "Добавить". введите ИМЯ_КОМПЬЮТЕРА\IIS_USERS

    или

  4. нажмите кнопку вперед.

  5. нажмите кнопку Найти кнопка.

    и есть возможность выбрать. выберите IIS_USERS и нажмите кнопку ОК...ладно....ладно .

Comments

    Ничего не найдено.