Не удается открыть конфигурационный файл

Обновлено: 07.07.2024

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

что я могу добавить к моему web.хотя конфигурационный файл? Мне никогда не приходилось редактировать его перед. Вот ее содержание:

ошибка конфигурации: не удается прочитать файл конфигурации из-за недостаточных разрешений
Конфигурационный Файл:?C:Users * * * * * DocumentsVisual Studio2010WebSitesPointsForTimeweb.конфигурации

здесь нет проблем с вашей сети.конфигурации. Ваш веб-сайт работает в рамках процесса. В 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

enter image description here

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

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

  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

enter image description here

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

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

В данной статье мне бы хотелось рассмотреть проблему загрузки настроек из конфигурационных файлов. Как правило, разработчики используют тяжеловесное и сложное API из пространства имен System.Configuration и считывают настройки шаг за шагом. В случае если в конфигурационном файле секция, которую надо считать, представляет из себя простую структуру (без вложенностей), то, в принципе, считывание не вызывает особых проблем. Однако, как только конфигурация усложняется и/или появляются вложенные подсекции, то распарсивание превращается в настоящую головную боль. Для простого и быстрого считывания настроек и загрузку их в память отлично подойдет библиотека ConfigurationParser, которая возьмет на себя все сложности работы с конфигурационными файлами.

Установка

Данная библиотека доступна для скачивания через NuGet. Или вы можете скачать исходники из GitHub.

Использование

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

Следующим шагом необходимо создать классы, в которых мы будем хранить настройки системы.

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

Теперь мы можем считать нашу конфигурацию легко и непринужденно:


После выполнения кода у нас будет создано 2 объекта, которые и будут содержать наши настройки. Как вы можете справедливо заметить, мы не считываем SmtpSettings. Это сделано для того, чтобы продемонстрировать дополнительные возможности утилиты.

В различных проектах вам может понадобиться записывать разнообразные настройки в конфигурационные файлы и иметь свою логику как с ними работать. Утилита спроектирована таким образом, что вы можете ее легко расширить путем добавления новой стратегии и покрыть все сценарии, которые вам нужны. Для примера, давайте рассмотрим секцию Recipients:


Эта секция содержит список email-ов, разделенных точкой с запятой. Согласно нашему ТЗ и классу мы должны записать каждый адрес как отдельный элемент в массиве. Для выполнения поставленной задачи нам надо создать класс SplitRecipientsCustomStrategy и реализовать интерфейс ICustomMappingStrategy

Внутри нам необходимо реализовать алгоритм распарсивания значения из секции в соответствии с нашим заданием. Необходимо учитывать, что метод Map(string input, Type itemType) вызывается если значение прочитано из атрибута, а метод Map(XmlNode xmlNode, Type itemType) вызывается если значение прочитано из секции. Согласно конфигурационному файлу, значение будет прочитано из секции.

После этого нам необходимо пометить свойство Recipients атрибутом CustomStrategy в котором нужно указать, что за «стратегия» будет использоваться для данного поля:


Вот и все, теперь мы можем считать настройки электронной почты.


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

Хотелось бы упомянуть еще об одной возможности данной библиотеки. Это аттрибут PropertyMappingAttribute. Его нужно использовать в случае когда название элемента в конфигурационном файле не совпадает с названием свойства.
Например, у нас есть секция Email, где записывается текущий почтовый адрес пользователя.

А вот в класс для хранения данного значения у нас предусмотрено свойство UserEmail. Чтобы настройки правильно считались необходимо поменить данное свойство аттрибутом PropertyMappingAttribute.

Таким образом названия элементов в конфигурационном файле необязательно должны совпадать с именами свойств.

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

  1. Добавить IIS_IUSRS с разрешением на чтение для файлов в папке
  2. Измените метод проверки подлинности IIS на BasicAuthentication
  3. обновите сайт. Это сработает

Что я могу добавить в свой файл web.config? Мне никогда раньше не приходилось его редактировать. Вот его текущее содержание:

Ошибка конфигурации: не удается прочитать файл конфигурации из-за недостаточных разрешений
Файл конфигурации: \? \ C: \ Users ***** \ Documents \ Visual Studio2010 \ WebSites \ PointsForTime \ web.config

Нет проблем с вашим web.config . Ваш веб-сайт работает в рамках процесса. В iis вы можете определить идентичность этого процесса. Удостоверение , под которым пул приложений вашего веб-сайта ( Сетевые службы, локальная система и т. Д.), Должно иметь разрешение на доступ и чтение в Интернете. .config файл.

Обновить:

Этот обновленный ответ такой же, как и выше, но немного длиннее, проще и улучшен.

Прежде всего : вам не нужно ничего менять в файле конфигурации. Все в порядке . Проблема связана с разрешениями для файлов Windows .

Эта проблема возникает из-за того, что ваше приложение не может получить доступ и прочитать файл web.config .

Сделайте файл доступным для группы IIS_IUSRS . Просто щелкните правой кнопкой мыши web.config и выберите свойства на вкладке безопасность , добавьте IIS_IUSRS .

Так что это за штука IIS_IUSRS?

Ваш веб-сайт представляет собой файл EXE . Как и любой exe-файл, он должен быть запущен пользователем и запускается в соответствии с разрешениями , назначенными этому пользователю.

Когда ваш сайт запускается в IIS , Пул приложений вашего веб-сайта связывается с пользователем ( Сетевые службы, Локальная система и т. д. . ) (и может быть изменено в IIS)

Поэтому, когда вы говорите IIS_IUSRS , это означает любого пользователя ( Сетевые службы, локальная система и т. Д. . ), что ваш сайт работает как .

И как @Seph упоминается в комментарии ниже : Если ваш компьютер находится в домене , помните, что Группа IIS_IUSRS - это локальная группа . Также убедитесь, что, когда вы пытаетесь найти этого пользователя, проверьте местоположение, он должен быть установлен на локальный компьютер, а не на корпоративный домен.

Все предоставленные ответы действительны и работают при различных обстоятельствах.

Для меня перезапуск Visual Studio сработал.

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

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

Он начал работать только тогда, когда я дал следующие разрешения группе «Пользователи», и наследование каскадировало разрешения для web.config. Вероятно, следовало применить его только к web.config, чтобы уменьшить площадь поверхности атаки.

User Pemissions

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

RVIZ Black Window, не удается открыть проблему файла конфигурации

оглавление

Я отдал две очень странные проблемы:

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

Окно, показанное в RVIZ, показано ниже.


Это показывает, что конфигурация RVIZ по умолчанию не загружается правильно, даже в строке меню нажмите «Файл» -> «Открыть конфин», консоль подсказывает две ошибки, информация об ошибке выглядит следующим образом (опрос не удалось с прерванным системным вызовом):


  • В процессе RVIZ Control имеет много информации:

2.1 Решение проблем 2

Наиболее началом этой проблемы состоит в том, что RVIZ Open - это черное окно. У него нет робота в моделировании. Даже если конфигурация сохраняется, в следующий раз он все еще черный. Тем не менее, вы можете добавить окно, такое как отображение, например, дисплей и т. Д. Через панели -> Добавить новую панель строки меню, но работа RVIZ по-прежнему необычно.

The problem statement was due to locale issue. that was solved by changing to en_US and then back to en_IN.

2.2 Решение проблем 1

Поскольку только в строке меню RVIZ нажмите «Файл» -> «Открыть кондиционер», вы будете распечатывать Опрос опроса с ошибкой прерванной ошибкой системы, поэтому не видите эту информацию на консоли. Но используйте эту ошибку для поиска ключевых слов без урожая.

  1. It is seemed that the yaml-cpp version will cause the problem. I remove the yaml-cpp I install manual and rviz can work properly.
  2. I had this problem too.
    And I found that there are 2 version of yaml-cpp in my computer, one was installed by cmake. and after I deleted it, my rviz repaired.

Эти два комментария указывают на проблему библиотеке YAML-CPP. Вспоминая, что я сделал это, потому что я прочитал и писал файл yaml Compited ссылки всегда ошибки, я перезагружал YAML-CPP0.5.5 из исходного кода. Введите следующую команду в консоли для просмотра:

Я обнаружил, что мои YAML-CPP также имеют несколько версий. Я использую YAML-CPP, который установлен из исходного кода, расположенный ниже / usr / local / lib. Нажмите библиотеку, связанную с YAML в соответствии с этим каталогом и, наконец, решил эту проблему. Если вы не уверены, что эта проблема, вы можете использовать следующие инструкции, чтобы назвать / usr / local / lib.

Затем вновь открывайте RVIZ, чтобы увидеть, есть ли какие-либо проблемы.

Первоначально подготовленные, цена системы перегрузки слишком велика, и виртуальная машина не может запустить динамическую среду, чтобы вернуться к головке, чтобы продолжить кожу головы, чтобы решить эту проблему, спасибо Netizens, которые предоставляют помощь.

Читайте также: