programing

지정한 CGI 응용 프로그램에 오류가 발생하여 서버가 프로세스를 종료했습니다.

lastcode 2023. 4. 27. 22:29
반응형

지정한 CGI 응용 프로그램에 오류가 발생하여 서버가 프로세스를 종료했습니다.

저는 zure에서 asp.net 5 애플리케이션을 호스팅하고 있으며, 코드는 베타8용으로 준수되며, 애플리케이션은 로컬 환경에서 정상적으로 실행되고 있으며, zure 사이트에 코드를 게시할 때도 마찬가지입니다.일반적인 오류가 발생합니다. "지정된 CGI 응용 프로그램에서 오류가 발생하여 서버가 프로세스를 종료했습니다."

저는 이 문제를 제거함으로써 해결할 수 있었습니다.forwardWindowsAuthTokenwwwroot 아래의 web.config 파일에서.

  1. src/ProjectName/wwwroot로 이동합니다.
  2. web.config를 엽니다.
  3. 에서httpPlatform을 제거합니다.forwardWindowsAuthToken="true/false"소유물

재배치와 내 것은 잘 작동했습니다.

많은 토론을 보려면 여기 https://github.com/aspnet/Hosting/issues/364 을 참조하십시오.

단답형

우리를 위한 해결책은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>       

우리의 프로젝트.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>

코드에 무한 루프가 있는 경우에도 이 문제가 발생할 수 있습니다.

저는 최근에 같은 문제를 겪었고 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>

를 사용하여 ASP.core 앱을 배포하는 동안 이 오류가 발생했습니다.NET 5.4.2.수정 사항은 새로운 앱 서비스 인스턴스에 배포하는 것이었습니다.이전 배포에서 다른 프레임워크 버전을 사용한 일부 쓰레기가 남아 있을 것으로 예상됩니다.

저는 제가 어떻게 해결했는지 다음과 같은 문제에 직면했습니다.

  • 제 지원서는.NET CORE 2.2와 저는 Azure 웹 앱에 배포하고 있었습니다.
  • 프로젝트를 마우스 오른쪽 단추로 클릭하고 게시 단추를 클릭합니다.
  • Azure에서 다운로드한 게시 프로필을 선택합니다.
  • 그런 다음 요약에서 배포 모드를 자체 포함으로 변경합니다.
  • 이제 게시 버튼을 클릭하면 작동합니다.여기에 이미지 설명 입력

저는 asp.net core 버전이 미리보기 버전이기 때문에 azure 앱 서비스에서 이 문제가 발생하여 asp.net core 버전을 NuGet 2.0.1로 업데이트하고 앱을 다시 배포합니다.

앱이 다시 작동합니다.

사용하고 있습니다.NET Core 2.1 및 EF Core를 Azure 웹 앱에 배포했습니다.데이터베이스 소유자 권한이 있는 데이터베이스 계정에서 제한된 데이터베이스 계정으로 전환했을 때 이 오류가 발생했습니다.앱이 시작되면 EF에 내가 빠진 권한이 필요할 것 같습니다.

저도 같은 오류가 발생했습니다.몇 가지 솔루션을 검색한 후 스레드 풀이 허용 용량을 초과할 수 있다는 점에 대해 비동기 메서드 호출을 비 비동기 호출로 대체하여 코드를 변경했습니다.이것은 작동하지 않았습니다.그런 다음 web.config의 요청 시간 제한을 20분으로 늘렸고 해결되었습니다.

web.config 파일에 아래 문자열을 추가합니다.

requestTimeout="00:20:00"

~하듯이

<aspNetCore processPath="dotnet" arguments=".\API.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" requestTimeout="00:20:00" />

오늘 우리는 같은 문제를 겪었습니다.로 인해 발생한 것입니다.Debug.Assert(...).

코드와 관련이 없습니다. 앱 서비스를 다시 배포한 다음 다시 시작해야 합니다.

언급URL : https://stackoverflow.com/questions/33645242/the-specified-cgi-application-encountered-an-error-and-the-server-terminated-the

반응형