Visual Studioを使用して関数を公開しようとすると、次のエラーメッセージが表示されます。これを修正する方法はありますか?
System.AggregateException:1つ以上のエラーが発生しました。 ---> System.Exception:パブリッシュでエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。 ---内部例外スタックトレースの終わり--- System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout、CancellationToken cancelToken)at Microsoft.Publish.Framework。 Model.DefaultPublishSteps。<> c__DisplayClass26_0.b__2()at System.Threading.Tasks.Task`1.InnerInvoke()at System.Threading.Tasks.Task.Execute()---例外があった前の場所からのスタックトレースの終わりスロー--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at Microsoft.Publish.Framework.Model.DefaultPublishSteps.d__23.MoveNext()- -例外がスローされた以前の場所からのスタックトレースの終わり--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at Microsoft.Pub lish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext()--->(内部例外#0)System.Exception:パブリッシュでエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。 <---
System.Exception:パブリッシュでエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。
===================
解決策は、最新のSDKに更新することでした。
お試しいただけますか this
Azure PortalからAzure Functionsアプリケーションの設定からWEBSITE_RUN_FROM_PACKAGE設定を完全に削除します。
これはVisual Studioのタイムアウトの問題です。つまり、コードやその他の設定が問題の原因ではありません。このエラーは、Visualがリリースにタイムアウト制限を設定するために発生します。 (ファイルが大きすぎるか、インターネットの速度が不安定です)
デプロイメントプロジェクトが大きすぎない場合は、ネットワークの速度が安定するまで待ってから実行してみてください。もちろん、 Zip deploy など、この問題を回避する他の展開方法を試すこともできます。
GitHubのようなプレイフォームでプロジェクトを共有しないと、特定のアドバイスを提供することは非常に困難です。非常に多くの変数があり、NuGETパッケージと参照の組み合わせが多数あるため、プロジェクトがこれを引き起こすような方法で競合する可能性がありますエラー。
特にv2関数では、この問題または同様の問題が何度か発生しました。関数の最大の要因の1つは、v1とv2の間で競合する概念です。
Visual Studioパブリッシュウィザードを使用してAzureでターゲットリソースを作成する場合、しばらくの間これに苦労していた場合、成功する傾向があります。他に何もない場合の概念の証明として、このプロセスに従うことをお勧めします。
このアドバイスはVS2017と2019でも同じように機能します
一般的な経験則として、Azure Functionsで一般的に成功するには:
- .Net Frameworkプロジェクトにはv1を使用します。または、参照プロジェクトまたはNuGETパッケージの[〜#〜] any [〜#〜]に.Net Fxがある場合依存関係。 (したがって、.Net 4 + ...またはそれ以外のもの。Net Core。)
Functionsを使用して、これらの依存関係が複数のプロジェクトを対象とする場合でも、展開中にNuGET依存関係を評価するときに正しいプラットフォームを適切に検出できないため、展開が失敗する傾向があります。
- V2を使用[〜#〜] only [〜#〜]。Net Coreプロジェクトの場合、参照も。Net coreのみであることを確認してください=
コードを段階的にコンパイルして公開します。また、AzureDevOps、GitHub、またはその他のソースコードリポジトリを使用して、Functionsで頻繁にコードをチェックインします。 Functionsプロジェクトの初期段階では、複数の屈折とNuGETパッケージを頻繁に導入し、それらはローカルで機能しているように見えますが、デプロイすると機能しません。
役立つかもしれないいくつかの興味深い議論があります: