
У меня есть веб-сайт ASP.NET Blazor, использующий .NET7, работающий на Windows Server 2022/IIS 10.
Из-заУ меня возникли некоторые проблемы с загрузками, я решил попробовать включить теневое копирование, так как это должно было избежать этой проблемы.
Я следил за информациейэтот пост в блоге, и изменил свой Web.config
файл так, чтобы он выглядел следующим образом...
<?xml version="1.0"
encoding="utf-8"?>
<configuration>
<location path="."
inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore"
path="*"
verb="*"
modules="AspNetCoreModuleV2"
resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet"
arguments=".\MyWebSite.dll"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
<handlerSettings>
<handlerSetting name="enableShadowCopy"
value="true" />
<handlerSetting name="shadowCopyDirectory"
value="../_ShadowCopyDirectory/" />
</handlerSettings>
</aspNetCore>
</system.webServer>
</location>
</configuration>
Однако это приводит к тому, что веб-сайт не запускается и возвращается ошибка 500. Если я закомментирую или удалю раздел <handlerSettings>
, сайт работает нормально.
В журнале событий сервера отображается запись с источником IIS AspNetCore Module V2
и следующим описанием...
Не удалось загрузить конфигурацию. Сообщение об исключении:
Вот и все, полное сообщение.
Мне кажется, что IIS не может прочитать файл конфигурации, что обычно происходит из-за недопустимого XML-файла, но я проверил его в валидаторе, и все оказалось в порядке.
Хотя я не думаю, что дело доходит до этого, _ShadowCopyDirectory
папка существует, так что проблема не в этом. Я включил родительские пути, так что это тоже не должно быть проблемой, хотя, как я уже сказал, у меня есть подозрение, что дело даже не доходит до этого.
Сайт, о котором идет речь, использует .NET 7, который поддерживает эту функцию, так что это тоже не должно быть проблемой. Я проверил журналы IIS, но они не показывают ничего о случаях, когда он не загружался.
Кто-нибудь знает, что может быть не так, или где я могу поискать дополнительную информацию? Журнал событий не помог.
решение1
У меня была та же проблема, решилась удалением web.config и повторной загрузкой. Простая перезапись не помогла.
решение2
Убедитесь, что у вас установлена последняя версия ANCM иПакет хостинга Windowsустановлена. Настройка была включена с использованием этого имени только после .NET 7.0 RTM - до этого работали только имена превью, и если эти имена не поддерживались, то возникали web.config
ошибки.
Также убедитесь, что у вашего приложения есть права на чтение в папке Web. Это трудно сделать, но это может произойти, если вы использовали пользовательский аккаунт, у которого нет по крайней мере прав на чтение в вашем корневом каталоге Web.
Ошибки запуска пула приложений и среды выполнения ASP.NET обычно отображаются в журнале событий, поэтому просмотрите его для получения дополнительной информации о возникшей ошибке.