Я хочу загрузить свой собственный сайт asp.net в IIS с помощью IIS Manager. Но когда я делаю это, я получаю следующую ошибку
Ошибка HTTP 500.19 - внутренняя ошибка сервера. Запрашиваемая страница недоступна, поскольку соответствующие данные конфигурации для этой страницы недействительны.
Модуль IIS Web Core
Уведомление Неизвестный
обработчик Еще не определен
Код0x80070005
ошибки Ошибка конфигурации Не удается прочитать файл конфигурации из-за недостаточных разрешений
Файл конфигурации\\?\C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\web.config
Я много раз искал решение этой ошибки, но ни одно из них не помогло.
У меня проблема с моей IUSR
учетной записью. Я не вижу эту учетную запись в "группе или имени пользователя" в свойствах web.config
.
В чем проблема?
источник
Web.config
ACL файла отличаются от других файлов в каталоге, и он не наследуется от своего родителя . Я включил наследование ACL и все вернулось на круги своя.Ответы:
В сообщении говорится, что ваш файл конфигурации каким-то образом поврежден. Однако он также говорит, что не может получить доступ к файлу конфигурации. Поэтому я бы проигнорировал исходное сообщение о повреждении / недействительности, поскольку это, скорее всего, просто эффект невозможности прочитать файл из-за отсутствия авторизации.
Причина, по которой он не может прочитать файл конфигурации, заключается в том, что процесс, выполняющий ваше веб-приложение, не имеет разрешения на доступ к файлу / каталогу. Таким образом, вам нужно предоставить процессу, выполняющему ваше веб-приложение, эти разрешения.
Права доступа должны быть довольно простыми, то есть, по крайней мере, Чтение , и, в зависимости от вашего приложения, возможно, Написать .
Выше вы упомянули IUSR и т. Д., Не находящиеся в свойствах для
web.config
. Если под этим вы подразумеваете, что IUSR не указан на вкладке безопасности файла, то это хорошо. Никто не хочет давать IUSR какое-либо разрешение на web.config . Роль IUSR является анонимным интернет-пользователем.Файл web.config должен быть доступен только через ваше приложение.
Проблема в том, что вы не сказали, какую версию ОС и IIS вы используете, поэтому трудно посоветовать, какие шаги предпринять.
То есть в IIS 7.5 сообщение об ошибке, которое вы цитируете, вероятно, возникает из-за того, что ApplicationPoolIdentity не были назначены разрешения. Ваше веб-приложение относится к пулу приложений, поэтому вам необходимо предоставить разрешения учетной записи ОС, под которой запускается пул приложений вашего веб-приложения. Часто это что-то вроде NetworkService, но вы можете настроить его для работы под специально созданной учетной записью. Без дополнительной информации вам сложно помочь.
источник
Это также может произойти, если сайт настроен для использования модуля перезаписи URL IIS, но он не установлен.
источник
Наконец-то я получил решение своей проблемы. Учетная запись ASP.net не появилась в диспетчере IIS, потому что я не установил ее флажок в IIS. Для этого в Windows 7 выполните следующие действия:
Теперь вы увидите учетную запись ASP.net в диспетчере IIS и по умолчанию вы увидите учетную запись IIS. Теперь вы должны переместить свой веб-сайт ASP.net из «моего документа» в другое место, где IIS имеет разрешение на доступ к нему (то есть в другой раздел на вашем компьютере). Теперь просмотрите ваш сайт у менеджера IIS, и он должен работать.
Большое спасибо Джеффу Тернеру за решение.
источник
dism /NoRestart /Online /Enable-Feature /FeatureName:IIS-ASPNET
В моем случае установка модуля перезаписи URL IIS решила проблему.
источник
У меня была та же проблема, вот решение, которое работало для меня.
источник
Для разработчиков Visual Studio (VS): Как намекают Харви Дарви, Savage и Snives, конфигурация хоста приложения может указывать на неверный физический путь приложения. Найдите virtualDirectory в /.vs/config/applicationhost.config, чтобы изменить физический путь, если он неверен.
Убедитесь, что физический путь указан правильно:
источник
Оповещение на лицевой стороне:
Вы также получите эту ошибку, если путь к файлу конфигурации неправильный. Дважды проверьте его, чтобы убедиться, что физический путь введен правильно в IIS.
источник
Вам необходимо назначить разрешения для IIS_IUSRS на локальном компьютере (но вам не нужно назначать разрешения для IUSR, на самом деле это будет работать, даже если вы явно отказываете в разрешениях).
Чтобы назначить разрешения, просто щелкните правой кнопкой мыши папку и на вкладке безопасности убедитесь, что вы предоставили правильные разрешения, а если пользователя нет в списке, нажмите «ДОБАВИТЬ» и введите IIS_IUSRS (и убедитесь, что в разделе «домен» локальный компьютер выбран, или введите в поле имени YourLocalComputerName \ IIS_IUSRS), и тогда все готово.
Если вы хотите, вы можете вместо назначения разрешений группе IIS_IUSRS вместо этого назначить пулу приложений, который обычно должен быть «IIS APPPOOL \ имя пула приложений ».
источник
Просто для того, чтобы сделать это, я получил такую же ошибку, и моя проблема была довольно простой: мне не хватало .NET Core Hosting Bundle. Как только я установил инструмент и перезапустил сервер, все было в порядке.
Вы можете найти руководство по размещению ядра asp.net в Windows здесь: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2
источник
То же самое случилось со мной, попробуйте проверить это, дважды щелкнув строки подключения на правой панели IIS 7 при выборе веб-сайта.
Это даст вам ошибку (что есть некоторая проблема с файлом веб-конфигурации), потому что вы использовали правила перезаписи URL, и соответствующий компонент не установлен.
Установите «Microsoft URL Rewrite Module 2.0 для IIS 7», и это должно решить вашу проблему
источник
Ничто здесь не работало для меня, я нашел эту команду в другом SO ответе, и это решило мою проблему. Просто запустите командную строку от имени администратора и выполните эту команду:
Кредит: пользователь Vicxx
источник
Я делаю эти шаги для решения этой проблемы в Windows Server 2012, IIS 8.5. Должно работать и для других версий.
Web Server
.NET Extensibility 4.5
,ASP.NET 4.5
и обаISAPI
записиNET 3.5
,.NET 4.5
,ASP.NET 4.5
Web Server
(все),Management Tools
(Консоль управления IIS и Служба управления), Windowsисточник
Еще одна возможность, которая исправила эту проблему для меня:
IIS -> Изменить разрешения -> Вкладка «Безопасность» -> Предоставить «пользователям» соответствующие разрешения (или IIS_IUSRS, в зависимости от настроек)
источник
Эмм. Я переместил свой сайт / файлы в другую папку. Без изменения пути на сайте IIS.
Вы все можете смеяться сейчас.
источник
Убедитесь, что у пула приложений установлена правильная версия фреймворка. Вам также необходимо убедиться, что пользователи aspnet, IIS_IUSRS или IUSR имеют доступ для чтения к каталогу приложения.
источник
Установите основной модуль ASP.NET
Загрузите установщик по следующей ссылке: https://www.microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer
источник
Это также случилось со мной, когда у меня был документ по умолчанию с тем же именем (например, index.aspx), указанный как в моем файле web.config, так и на моем веб-сайте IIS. В итоге я удалил запись с веб-сайта IIS и сохранил запись web.config, как показано ниже:
источник
Иногда в этом сообщении могут отсутствовать компоненты в вашей среде IIS, например, конкретная среда или функция IIS, такая как динамическое сжатие, а не права доступа к web.config.
Если дело обстоит именно так, решение может состоять в том, чтобы установить и использовать установщик платформы Microsoft и установить эти недостающие компоненты - вам, возможно, придется попытаться понять, чего именно не хватает, поскольку журнал ошибок и сообщение не сообщают вам.
источник
Попробуйте установить подкомпонент IIS «Разработка приложений», как указано в этой статье.
источник
Вам необходимо установить разрешение для папки вашего сайта или скопировать их в папку wwwroot :) - Если установлено разрешение, есть 2 способа: + Щелкните правой кнопкой мыши папку вашего сайта + Или щелкните правой кнопкой мыши свой сайт в IIS => выберите Изменить разрешение и добавить разрешение (IUSR - по умолчанию пользователь iis) Удачи ;-)
источник
В моем случае это вызвано тем, что физический путь приложения указывает на несуществующую папку в IIS.
источник
У меня возникла проблема, когда я скопировал файл web.config из prod, изменил все, что не связано с prod, кроме правил перезаписи, которые переписывались на http S .
Убрал эти правила и работал нормально.
источник
Довольно просто, IIS не имеет доступа к вашему web.config. Я бы начал с того, что вынул сайт из папки с вашими документами. Убедитесь, что у него есть права доступа.
источник
У меня тоже была похожая проблема, и я исправил ее, комментируя некоторые разделы в файле web.config.
Проект был ранее построен и развернут в .Net 2.0. После миграции на .Net 3.5 он начал выдавать исключение.
Решения:
Если ваш файл конфигурации содержит «< sectionGroup name =» system.web.extensions > », прокомментируйте его и запустите, так как этот раздел уже доступен в Machine.config.
источник
Вы можете получить эту ошибку, если у вас есть ошибка synax или проблема в вашем файле web.config.
Для меня это был случайный амперсанд в URL, который я использовал в AppSettings.
источник
На странице ошибки IIS 7.5 вы получаете «Просмотреть дополнительную информацию» внизу страницы, и в этом случае вы перейдете по следующей ссылке Microsoft:
http://support.microsoft.com/kb/942055
The 0x80070005 Код ошибки, по-видимому, связан с разрешениями, и, следуя шагам, описанным в Резолюции 2, метод 2, назначающий правильные учетные записи с разрешениями для соответствующих папок, должен исправить это - я потратил 3 дня на поиск решения, пока не наткнулся на него, и сразу же работал.
источник
Эта проблема связана с подключенными дисками, IIS не работает с подключенными дисками. Просто используйте несопоставленный диск.
источник
Изучите папку, в которой хранится ваш веб-сайт, и увидите, что у вас есть еще одна папка «aspnet_client», удаляющая эту папку, и она будет работать для вас.
Я попробовал это, моя проблема решена.
Если это работает для вас, пожалуйста, сделайте это как ответ, чтобы какое-то другое тело также получило решение.
источник
Ничто из этого не сработало для меня, но у меня наконец есть решение, которое сработало для меня:
удалите эту строку в web.config:
не удаляйте эту строку
источник
Добавьте в учетную запись локальную учетную запись IIS_IUSRS и предоставьте им доступ на чтение / выполнение. это работает в моем случае.
источник