Я размещаю приложение asp.net 5 на azure, код выполняется для бета-версии 8, приложение отлично работает в локальной среде и когда я публикую код на лазурном сайте. я получаю общую ошибку "Указанное приложение CGI обнаружило ошибку, и сервер завершил процесс".
Указанное приложение CGI обнаружило ошибку, и сервер завершил процесс
Ответ 1
Мне удалось решить эту проблему, удалив forwardWindowsAuthToken
из файла web.config в разделе wwwroot.
- Перейдите в src/ProjectName/wwwroot
- Откройте web.config
- В
httpPlatform
удалите свойствоforwardWindowsAuthToken="true/false"
Redeploy и мои работали нормально.
См. здесь https://github.com/aspnet/Hosting/issues/364 для обсуждения.
Ответ 2
Короткий ответ
Для нас исправление заключалось в UseIISIntegration()
на WebHostBuilder
.
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseKestrel()
.UseIISIntegration() // Necessary for Azure.
.UseStartup<Program>()
.Build();
host.Run();
}
Подробнее
Наш web.config выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore"
path="*"
verb="*"
modules="AspNetCoreModule"
resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%"
arguments="%LAUNCHER_ARGS%"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout"
forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
Наш project.json выглядит следующим образом:
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0-*",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0-*"
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netcoreapp1.0": {}
},
"buildOptions": {
"emitEntryPoint": true
},
"publishOptions": {
"include": [
"web.config"
]
},
"scripts": {
"postpublish": [
"dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
]
}
}
Наш nuget.config выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="AspNetVNext" value="https://www.myget.org/F/aspnetcidev/api/v3/index.json" />
<add key="NuGet" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>
Ответ 3
Это также может произойти, если в вашем коде есть бесконечный цикл.
Ответ 4
Я просто столкнулся с этой ошибкой при развертывании приложения ASP.core с помощью .NET 5.4.2. Исправление заключалось в развертывании в новом экземпляре службы приложения. Я предполагал, что с предыдущим развертыванием остался какой-то хлам, который использовал другую версию фреймворка.
Ответ 5
Я столкнулся с той же проблемой, следующие шаги, как я решил.
- Моим приложением было .NET CORE 2.2, и я развертывал его в веб-приложении Azure.
- Щелкните правой кнопкой мыши по проекту и нажмите кнопку публикации.
- Выберите профиль публикации, который вы загрузили из Azure.
- Затем измените режим развертывания в разделе "Сводка" на "Автономный".
- Теперь нажмите на кнопку публикации, это должно работать.
Ответ 6
Недавно у меня возникла та же проблема, и я смог ее решить, установив requestTimeout
в requestTimeout
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=".\PROJECT.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" requestTimeout="00:30:00"/>
</system.webServer>
</location>
</configuration>
Ответ 7
У меня есть эта проблема в службе приложений Azure, поскольку версия ядра asp.net является предварительной версией, поэтому я обновляю версию ядра asp.net с помощью NuGet до версии 2.0.1 и повторно внедряю приложение.
Приложение снова работает.
Ответ 8
Я использую .NET Core 2.1 и EF Core, развернутые в веб-приложении Azure. Я получил эту ошибку, когда переключился с использования учетной записи базы данных с правами владельца базы данных на ограниченную учетную запись базы данных. Я подозреваю, что EF нужно право, которое я пропускаю при запуске приложения.