私はAzureでasp.net 5アプリケーションをホストしています。コードはbeta8に準拠しています。アプリケーションはローカル環境で正常に実行され、Azureサイトでコードを公開するときに実行されます。 「指定されたCGIアプリケーションでエラーが発生し、サーバーがプロセスを終了しました」という一般的なエラーが表示されます。
Wwwrootの下のweb.configファイルからforwardWindowsAuthToken
を削除することで、この問題を解決できました。
httpPlatform
removeでforwardWindowsAuthToken="true/false"
プロパティ再デプロイとマイニングは正常に機能しました。
こちらをご覧ください https://github.com/aspnet/Hosting/issues/364
私たちにとって、修正はWebHostBuilder
のUseIISIntegration()
に対するものでした。
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>
これは、コードに無限ループがある場合にも発生する可能性があります。
.NET 5.4.2を使用してASP.coreアプリを展開しているときに、このエラーに遭遇しました。修正は、新しいアプリサービスインスタンスに展開することでした。私の推測では、別のフレームワークバージョンを使用した以前の展開からいくつかのジャンクが横たわっていました。
私は最近同じ問題を抱えており、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>
Azure Webアプリにデプロイされた.NET Core 2.1とEF Coreを使用しています。データベース所有者権限を持つデータベースアカウントを使用して、制限されたデータベースアカウントに切り替えたときに、このエラーが発生しました。アプリの起動時にEFに不足している権利が必要であると思われます。
Asp.netコアのバージョンはプレビューバージョンであるため、Azureアプリサービスにこの問題があります。そのため、NuGetでasp.netコアバージョンを2.0.1に更新し、アプリを再デプロイします。
アプリは再び動作します。