Web config файл конфигурации создан в неправильном формате xml
Расположение файла web.config
Файл web.config должен постоянно присутствовать в развертывании, а также иметь правильное имя и возможность настроить сайт для нормального запуска. Никогда не удаляйте файл web.config из развертывания в рабочей среде.
Чтобы веб-пакет SDK не преобразовывал файл web.config , используйте свойство в файле проекта:
Следующий файл web.config опубликован для автономного развертывания.
Когда приложение развернуто в службе приложений Azure, путь stdoutLogFile задан как \\?\%home%\LogFiles\stdout . Путь сохраняет журналы stdout в папке LogFiles , расположение которой автоматически создается службой.
Сведения о конфигурации дочерних приложений IIS см. в разделе Расширенные конфигурации.
Атрибуты элемента aspNetCore
Необязательный строковый атрибут.
Аргументы для исполняемого файла, указанного в атрибуте processPath .
Дополнительный логический атрибут.
Если значение равно true, страница 502.5 — ошибка процесса подавляется и страница в файле web.config с кодом состояния 502 имеет более высокий приоритет.
Дополнительный логический атрибут.
Если значение равно true, маркер безопасности отправляется дочернему процессу, прослушивающему порт %ASPNETCORE_PORT% , как заголовок MS-ASPNETCORE-WINAUTHTOKEN каждого запроса. Этот процесс вызывает CloseHandle по этому маркеру безопасности каждого запроса.
Необязательный строковый атрибут.
Указывает модель размещения — внутри процесса ( InProcess / inprocess ) или вне процесса ( OutOfProcess / outofprocess ).
Необязательный целочисленный атрибут.
Указывает число экземпляров процесса, заданное в параметре processPath , которое может появиться для каждого приложения.
†Для внутрипроцессного размещения установлено ограничение 1 .
Параметр processesPerApplication не рекомендуется. Этот атрибут будет удален в будущем выпуске.
Обязательный строковый атрибут.
Необязательный целочисленный атрибут.
Указывает количество сбоев за минуту, которыми может завершиться процесс, указанный в processPath . Если этот предел превышен, модуль останавливает запуск процесса на оставшуюся часть минуты.
Не поддерживается для внутрипроцессного размещения.
Необязательный атрибут timespan.
Не применяется к внутрипроцессному размещению. Для внутрипроцессного размещения модуль ожидает, пока приложение не обработает запрос.
Допустимые значения для сегментов минут и секунд в строках находятся в диапазоне 0–59. Значение 60 для минут и секунд приведет к ошибке 500 — внутренняя ошибка сервера.
Необязательный целочисленный атрибут.
Длительность ожидания модуля в секундах, пока произойдет правильное выключение исполняемого файла при обнаружении файла app_offline.htm .
Необязательный целочисленный атрибут.
Время в секундах, которое модуль ожидает, пока запустится процесс прослушивания порта исполняемого файла. Если этот предел превышен, модуль завершает процесс.
Внутрипроцессное размещение. Процесс не перезапускается, и параметр rapidFailsPerMinute не используется.
Размещение вне процесса. Модуль пытается перезапустить процесс при получении нового запроса и будет продолжать пытаться перезапустить процесс для последующих входящих запросов, если не удается запустить приложение определенное в атрибуте rapidFailsPerMinute количество раз за последнюю минуту.
Значение 0 (ноль) не считается бесконечным временем ожидания.
Дополнительный логический атрибут.
Если значение равно true, stdout и stderr для процесса, указанного в атрибуте processPath , перенаправляются к файлу, заданному в атрибуте stdoutLogFile .
Необязательный строковый атрибут.
Указывает относительный или абсолютный путь к файлу, для которого регистрируются stdout и stderr из процесса, указанного в processPath . Относительные пути задаются относительно корневого каталога веб-сайта. Любой путь, начинающийся с . , относится к корневому каталогу веб-сайта, а все остальные пути рассматриваются как абсолютные пути. Все папки, указанные в пути, создаются модулем при создании файла журнала. С помощью разделителей подчеркивания метка времени, идентификатор процесса и расширение файла ( .log ) добавляются к последнему сегменту пути журнала stdoutLogFile . Если в качестве значения задано значение .\logs\stdout , например, журнал stdout сохраняется как stdout_20180205194132_1934.log в папке logs с датой 5 февраля 2018 г. в 19:41:32 с идентификатором процесса 1934.
Настройка переменных среды
Переменные среды для процесса можно указать в атрибуте processPath . Укажите переменную среды с дочерним элементом элемента коллекции . Переменные среды, установленные в этом разделе, имеют приоритет над переменными системной среды.
Вместо установки среды напрямую в web.config можно включить свойство в профиль публикации ( .pubxml ) или файл проекта. При этом подходе во время публикации проекта среда задается в файле web.config :
Установите только переменную среды ASPNETCORE_ENVIRONMENT для Development на серверах промежуточных процессов и тестирования, которые недоступны для ненадежных сетей, таких как Интернет.
Настройка служб IIS с помощью web.config
Дополнительные сведения см. в следующих разделах:
Сведения о настройке переменных среды для отдельных приложений, выполняющихся в изолированных пулах приложений (такая возможность поддерживается в службах IIS, начиная с версии 10.0), см. в разделе Команда AppCmd.exe статьи Переменные среды в справочной документации по службам IIS.
Разделы конфигурации web.config
Преобразование web.config
Если вам нужно преобразовать web.config при публикации, см. статью Преобразование web.config. Возможно, вам потребуется выполнить преобразование web.config при публикации, чтобы задать переменные среды на основе конфигурации, профиля или среды.
ПРИМЕНЯЕТСЯ К: 2013 2016 2019 по подписке SharePoint в Microsoft 365
Имя правила. Файл web.config имеет неправильные настройки для элемента requestFiltering.
Сводка: Для поддержки имен файлов, содержащих символ +, элемент requestFiltering в файле Web.config должен иметь атрибут allowDoubleEscaping значение True и должен иметь элемент requestLimits, который имеет значение maxAllowedContentLength для 2147483647, чтобы не вмешиваться в отправку файлов.
Причина: Параметры элемента requestFiltering в файле Web.config некорректны.
Разрешение. Измените параметры requestFiltering в файле Web.config в службы IIS (IIS).
Убедитесь, что учетная запись пользователя, с помощью которой выполняется данная процедура, является участником группы администраторов фермы.
Определите сервер, на котором возникает это событие. Откройте Веб-сайт центра администрирования SharePoint, а затем в разделе Мониторинг нажмите Обзор проблем и решений и найдите имя сервера в столбце Серверы со сбоями. Если сбои произошли на нескольких серверах фермы, повторите указанные ниже действия для каждого из них.
Убедитесь, что учетная запись пользователя, используемая для выполнения этих действий, входит в группу "Администраторы" на локальном компьютере, который был определен на предыдущем шаге.
Войдите в систему сервера, на котором возникло это событие.
На диспетчере сервера щелкните Инструменты, а затем выберите службы IIS (IIS).
В консоли управления службами IIS в области Подключения разверните узел с названием сервера, разверните узел Сайты и выберите сайт, для которого нужно изменить настройки элемента requestFiltering.
На домашней странице сайта переключитесь в режим просмотра возможностей и в разделе Управление дважды щелкните Редактор конфигурации.
В списке Раздел разверните узел system.webServer, затем узел security и выберите requestFiltering.
На странице "Редактор конфигурации" убедитесь, что следующие атрибуты и элементы существуют и правильно настроены.
Атрибут allowDoubleEscaping имеет значение True.
Существует элемент requestLimits.
Элемент requestLimits имеет атрибут maxAllowedContentLength со значением 2147483647.
Преобразования файла web.config можно применять автоматически при публикации приложения на основе следующих данных:
Такие преобразования выполняются в любом из следующих сценариев создания web.config:
Конфигурация построения
Первыми выполняются преобразования конфигурации сборки.
Добавьте файл web..config для каждой конфигурации сборки для отладки или выпуска, чтобы потребовать преобразование web.config.
В следующем примере задается переменная для конкретной конфигурации в файле web.Release.config.
Это преобразование применяется, если настроена конфигурация выпуска (Release).
Свойство MSBuild для этой конфигурации имеет значение $(Configuration) .
Профиль
Во вторую очередь, после конфигурации сборки, выполняются преобразования профиля.
Добавьте файл web..config для каждой конфигурации профиля, которой требуется преобразование web.config.
В следующем примере в файле web.FolderProfile.config устанавливается переменная среды для конкретного профиля публикации папки.
Это преобразование применяется, если используется профиль FolderProfile.
Свойство MSBuild для имени профиля имеет значение $(PublishProfile) .
Если профиль не передан, используется имя профиля по умолчанию FileSystem, а следовательно применяется файл web.FileSystem.config, если он присутствует в корневом каталоге содержимого приложения.
Среда
Третьими, после преобразований конфигурации сборки и профиля, выполняются преобразования среды.
Добавьте файл web..config для каждой среды, которой требуется преобразование web.config.
В следующем примере в файле web.Production.config устанавливается переменная среды для определенной рабочей среды:
Это преобразование применяется, если используется среда Production.
Свойство MSBuild для этой среды имеет значение $(EnvironmentName) .
Переменная среды ASPNETCORE_ENVIRONMENT автоматически добавляется в файл web.config, если указано имя среды.
Другой
И, наконец, после преобразований конфигурации сборки, профиля и среды выполняются пользовательские преобразования.
Добавьте файл web..config для каждой пользовательской конфигурации, которой требуется преобразование web.config.
В следующем примере в файле custom.transform устанавливается переменная среды для пользовательского преобразования.
Это преобразование применяется, если в команду dotnet publish передано свойство CustomTransformFileName .
Свойство MSBuild для имени профиля имеет значение $(CustomTransformFileName) .
Предотвращение преобразования web.config
Чтобы избежать преобразования файла web.config, настройте свойство MSBuild $(IsWebConfigTransformDisabled) следующим образом.
Is this a bug, or have I missed a step in the process?
5 Answers 5
In Visual Studio 2017, right click in Project in Solution Explorer -> Add -> New Item -> Search for "config" -> Add Web Configuration File. This will add web.config in your project with default stuff.
Thank you. No need to search, it is there in the list when clicking on Web. Extra note: I used this simple web.config file in my project and when I published the whole solution using the File System method, I checked the 'auto-generated' version that it had created under the . \publish\ directory and the new web.config file included the info I had added in the one I manually created PLUS the other CORE tags that it needed to generate.
The web.config file is generated when you are publishing the project.
See this page if you need to set up Windows Authentication with IIS. Creating the web.config manually and adding the forwardWindowsAuthToken attribute was the only way I could get it to work.
This isn't a direct answer to your question, but I want to post this solution, as it is related.
Today, I found that VS2017 refused to start my web app as it said it couldn't find a web.config file.
The error message showed the path where it was searching for the web.config in, but it was a folder that had never existed on my laptop (I'd been sent the code from an external company). Even worse, our project didn't even contain a web.config file, so the error made no sense !!
I spent ages trying to get around this issue, reported by IIS Express with VS2017, and the solution was ridiculous:
I just had to increment the port number which my code was running under.
Is this a bug with IIS/VS2017 ? I don't know. But it wasted a lot of my time this morning. And renaming the following folder out of the way, as suggested by other StackOverflow articles, didn't help:
Again, apologies - this isn't a direct answer to the question, but I'm sure I won't be the only person to stumble on this webpage, after receiving this bizarre " Can't find web.config " error, so I think it is useful to document here.
I'm trying to fix an IIS 7 web server on Windows Server 2008. I don't know what caused this configuration to go bad. Any ideas on where to begin to look?
Error when clicking on the server node in the object explorer of IIS Manager.
likely you don't need to recover anything, you should just look at the applicationHost.config file or the web.config and see which one got somehow corrupted. likely someone updated it manually and made it invalid XML, usually it is easy to tell if you open in an XML editor and easy to fix. You can find backup files in c:\inetpub that likely can recover. Also, make sure you are not getting redirected to Wow64 folder and you are in windows\system32\inetsrv\config
This problem started occurring for me right after a failed Windows Update that caused a BSOD in the middle of updating. Replacing the applicationhost.config file from the history (see solution below) was all it took to get things back in order.
8 Answers 8
This issue is due to the file 'applicationhost.config' getting corrupted.
The backup of this file is stored at C:\inetpub\history\ . Delete the corrupted file C:\Windows\system32\inetsrv\config\applicationhost.config and restore it from the backup. Then start \ restart IIS.
The problem will be resolved.
Follow this, but do not copy the "schema" folder, nor the "Export" folder from the history to the current folder.
I was able to reproduce this issue!! Modifying the Web.Config incorrectly (see answer to question below) ultimately caused this issue. Because I did all of this stuff, I'm having to restore from a server backup to fix everything since it'll be too difficult to undo everything. Bad Bad Bad Microsoft!
This question is related to:
Lesson Learned: Before a web server deployment, copy the contents out of this folder before ever changing IIS 7 configuration or making Web.Config changes.
Читайте также: