web-dev-qa-db-ja.com

指定されたCGIアプリケーションでエラーが発生し、サーバーがプロセスを終了しました

私はAzureでasp.net 5アプリケーションをホストしています。コードはbeta8に準拠しています。アプリケーションはローカル環境で正常に実行され、Azureサイトでコードを公開するときに実行されます。 「指定されたCGIアプリケーションでエラーが発生し、サーバーがプロセスを終了しました」という一般的なエラーが表示されます。

24
srivatsa6065

Wwwrootの下のweb.configファイルからforwardWindowsAuthTokenを削除することで、この問題を解決できました。

  1. Src/ProjectName/wwwrootに移動します
  2. Web.configを開きます
  3. httpPlatformremoveでforwardWindowsAuthToken="true/false"プロパティ

再デプロイとマイニングは正常に機能しました。

こちらをご覧ください https://github.com/aspnet/Hosting/issues/364

9
Damien Pontifex

短い答え

私たちにとって、修正はWebHostBuilderUseIISIntegration()に対するものでした。

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>
9
Shaun Luttin

これは、コードに無限ループがある場合にも発生する可能性があります。

4
pim

私が解決した手順は、次の同じ問題に直面していました。

  • 私のアプリケーションは.NET CORE 2.2で、Azure Webアプリにデプロイしていました。
  • プロジェクトを右クリックして、公開ボタンをクリックします。
  • Azureからダウンロードした発行プロファイルを選択します。
  • 次に、[概要]の展開モードを[自己完結型]に変更します。
  • 今すぐ公開ボタンをクリックしてください。 enter image description here
3
Sagar Patil

.NET 5.4.2を使用してASP.coreアプリを展開しているときに、このエラーに遭遇しました。修正は、新しいアプリサービスインスタンスに展開することでした。私の推測では、別のフレームワークバージョンを使用した以前の展開からいくつかのジャンクが横たわっていました。

2
Tom Makin

私は最近同じ問題を抱えており、requestTimeoutweb.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>
2
Martin Brandl

Azure Webアプリにデプロイされた.NET Core 2.1とEF Coreを使用しています。データベース所有者権限を持つデータベースアカウントを使用して、制限されたデータベースアカウントに切り替えたときに、このエラーが発生しました。アプリの起動時にEFに不足している権利が必要であると思われます。

0
John81

Asp.netコアのバージョンはプレビューバージョンであるため、Azureアプリサービスにこの問題があります。そのため、NuGetでasp.netコアバージョンを2.0.1に更新し、アプリを再デプロイします。

アプリは再び動作します。

0
Crazy Crab