このリリースが利用可能になって以来、AzureでASP.NET Core 2.1 Preview-1アプリを実行しています。ポータルからASP.NET Coreランタイム拡張機能をインストールしましたが、正常に動作しています。
マイクロソフトがASP.NET Core 2.1 Preview-2をリリースしたので、SDKへのアップグレードをインストールしました。 Nugetパッケージを更新して、すべてのプレビュー2バージョンを入手できるようにしました。以下のcsprojファイルを参照してください:
また、2.1 Preview-1を表示していたアプリのAzure App ServiceからASP.NET Core Runtime拡張機能を削除しました。代わりに、ASP.NET Core 2.1ランタイムをx86とx64に別々にインストールしました-以下を参照してください
アプリをコンパイルしてAzure Appサービスに公開しましたが、エラーが発生します。まず、502.5エラーが発生しました。今、私は得ています:
指定されたCGIアプリケーションでエラーが発生し、サーバーがプロセスを終了しました。
ここで何が欠けていますか?
更新:
答えが示唆したように、私はターゲットをx86に設定しました(安全にプレイするため)-以下を参照してください:
拡張機能と個々のx86およびx64ランタイムを削除し、ASP.NET Core 2.1 preview-2をサポートするx86のみをインストールしました-以下を参照してください:
アプリを何度か再起動しましたが、まだ502.5を取得しています。
次に、次のコマンドを発行して、CLIコマンドラインから自己展開を試みました。
dotnet publish -c Release -r win10-x64
そして、私は次のエラーを受け取ります:
C:\ Program Files\dotnet\sdk\2.1.300-preview2-008530\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(125,5):error:RuntimeIdentifierプラットフォーム 'win10-x64 'とPlatformTarget' x86 'は互換性がなければなりません。
これは、x86バージョンのSDKがインストールされていて、x86をターゲットにする必要があることを意味しますか?
ASP.NET Core 2.0から2.1に移行するときに発生する問題の半分はありませんでした!!!!
更新2:Kuduコンソールでdotnet --info
を実行したところです。これを正しく読んでいる場合、正しいランタイムがありません。
更新3:
このスクリーンショットは私が言っていたことを確認するものだと思います。
更新4:
ASP.NET Core 2.1ランタイムのx86バージョンをインストールしました-以下を参照してください
Kuduコンソールでdotnet --info
を実行すると、以下が表示されて混乱します。まだ予期していたバージョンが表示されません。
また、URLにアクセスしても、502.5が表示され、dotnet MyApp.dll
を実行すると、Kuduコンソールに同じバージョンのランタイムが見つからないというメッセージが表示されます。
どのようにして正しいバージョンをそこに入れるのですか?ポータルからインストールすればうまくいくと思いました。
「自己完結型」デプロイメントモードを使用して、ASP.NET Core 2.1 RC1 webappをAzure app-serviceに公開できました。
プラットフォームターゲット:任意のCPU
.csprojからのパッケージ参照は次のとおりです。
<PackageReference Include="Microsoft.AspNetCore.App" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0-rc1-final" PrivateAssets="All" /> <PackageReference Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="2.1.0-rc1-final" />
これを機能させるために私が取った手順:
再起動は重要です。再起動する前に、.NET Coreツールは間違ったバージョンであり、502.5エラーも発生します。
32ビットと64ビットの両方のランタイムをインストールしたので、アプリケーションで不要なランタイムを削除して、Webアプリを再起動してみます。
ここで私のために働いているように見える唯一のものです。
私は使用して自己完結型の展開を行いました
dotnet publish --self-contained -r win10-x64 -c Release
次に、手動で展開する必要がありました。私の場合はFTPを使用しています。
この問題を本当に解決したいのですが、次の展開で解決しない場合は、Zip展開を実行します。私のアプリにはReactJs
フロントエンドがあるため、何千ものファイルをデプロイする必要があり、FTPはそれほど楽しくありませんでした。
このアプローチは、Azure App Serviceに何がインストールされているか、または何がインストールされていないかに依存しないため、はるかに簡単なソリューションです。
それでも、Visual Studioで[公開]をクリックするだけでよいのですが。
更新:Zipの展開を行ったばかりで、Zipの展開は成功したにもかかわらず、以前に発生していたエラーがまだ発生します。だから、まだ何かがおかしい!
複雑なウェブサイトで問題が発生したため、同じバージョンで設定されたAppファイルのみを使用したシンプルなウェブサイトを作成しました。
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.3" />
</ItemGroup>
次に、Tim Diekmannの例から、Azureパブリッシング構成のDeployment ModeをSettingsをSelf-Containedに変更する以外は何もしませんでしたそしてそれはうまくいった。
次の内容でglobal.json
ファイルをプロジェクトフォルダに追加してみてください:
{
"sdk": {
"version": "2.1.300-preview2-008530"
}
}
その後、アプリを再起動して安全を確保します。