Visual StudioからAzure関数を発行しようとするとエラーが発生する


13

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()---例外があった前の場所からのスタックトレースの終わりスロー--- System.Runtime.CompilerServicesでSystem.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)で。TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at Microsoft.Publish.Framework.Model.DefaultPublishSteps.d__23.MoveNext()---例外がスローされた前の場所からのスタックトレースの終わり--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (タスクタスク)System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext()--->(Inner Exception#0)System.Exception:Publish hasエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。<--- MoveNext()---例外がスローされた前の場所からのスタックトレースの終わり--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at Microsoft .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext()--->(内部例外#0)System.Exception:パブリッシュでエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。<--- MoveNext()---例外がスローされた前の場所からのスタックトレースの終わり--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)at Microsoft .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext()--->(内部例外#0)System.Exception:パブリッシュでエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。<--- d__213.MoveNext()--->(内部例外#0)System.Exception:パブリッシュでエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。<--- d__213.MoveNext()--->(内部例外#0)System.Exception:パブリッシュでエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。<---

System.Exception:パブリッシュでエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。

===================


私は現在Visual Studio 2019で同様の問題に遭遇しています-私の場合はフォルダーに公開しようとしていますが。私はまだこれの原因を追跡しようとしていますが、私のケースではこれまでにこれを試しました:1.)NuGetキャッシュをクリアします、2。)binおよびobjフォルダーを削除します3.)新しいフォルダープロファイルを作成しました出力ログファイルには何が表示されますか?何か便利なものはありますか?
VirtualValentin

Gitを介してデプロイしようとしましたかDeployment Center
pavle

回答:


8

試して頂けますか this

Azure PortalからAzure Functionsアプリケーションの設定からWEBSITE_RUN_FROM_PACKAGE設定を完全に削除します。


2
私は成功せずにそれをしました。
Recusiwe

これでうまくいきました。それが環境の変更が行われたときにAzure関数を「再起動」することに関連するのか、それともブロッキング構成なのかはわかりません。
ジャスティンネフ

5

これはVisual Studioのタイムアウトの問題です。つまり、コードやその他の設定が問題の原因ではありません。このエラーは、Visualがリリースにタイムアウト制限を設定するために発生します。(ファイルが大きすぎるか、インターネットの速度が不安定です)

デプロイメントプロジェクトが大きすぎない場合は、ネットワーク速度が安定するまで待ってから、実行を試みることができます。もちろん、zip deployなどの他のデプロイメント方法を試して、この問題を回避することもできます。


私はzipdeployを使用してそれをデプロイすることに成功しました。ただし、アプリの内容を確認すると更新されていますが、機能を実行すると古いバージョンが実行されているようです。
Recusiwe

@Recusiwe「古いバージョンを実行する」とはどういう意味ですか?azure関数のバージョンが変更されたということですか?zipデプロイはこの問題を解決しましたか?
BowmanZhu

「古いバージョン」とは、zip展開されたバージョンではなく、VSから公開できた最後のバージョンを意味します。アプリのコンテンツには、デプロイされたzipのコードが含まれていますが、実行されません。古いバージョンを実行します。
Recusiwe

@Recusiwe現在使用している関数のバージョンはどれですか。現在どのIDEを使用していますか?そして、あなたのプロジェクトのアセンブリは何ですか?(.csprojファイル)私は以前に同様のエラーに直面しました、それはその時のアセンブリの問題のようです。このエラーは、Visual Studio 2019でのみ発生する場合があります。VisualStudio 2017を使用して、この例外がまだ存在するかどうかを確認できます。Visual Studio 2017を使用している場合、Resharperを使用していますか?私はあなたのエラーを再現し、同様のエラーに対応しようとしていますが、これがあなたの状況に関連しているとは思えません。
BowmanZhu

Function app
v。2

0

GitHubのようなプレイフォームでプロジェクトを共有しないと、特定のアドバイスを提供することは非常に困難です。非常に多くの変数があり、NuGETパッケージと参照の組み合わせが多数あるため、プロジェクトがこれを引き起こすような方法で競合する可能性がありますエラー。

特にv2関数では、この問題または同様の問題が何度か発生しました。関数の最大の要因の1つは、v1とv2の間で競合する概念です。

Visual Studioパブリッシュウィザードを使用してAzureでターゲットリソースを作成する場合、しばらくの間これに苦労していた場合、成功する傾向があります。他に何もない場合の概念の証明として、このプロセスに従うことをお勧めします。

このアドバイスはVS2017と2019でも同じように機能します

  1. 同じソリューションで、Visual Studioで新しい関数プロジェクトを作成します。
    • 元の関数の名前を複製する
  2. 関数を新しい Azureリソースに発行し、発行ウィザードを使用してこのリソースを作成します。
  3. 公開が成功した場合:
    • 元のプロジェクトコードを新しいプロジェクトに移動する
    • 持ち込みたいnugetパッケージのバージョンに細心の注意を払ってください。それらとその依存関係はv2に準拠している必要があります
  4. 出版はある場合には、NOT成功
    • Visual Studioを最新にアップグレードしてください
    • Azure Toolsも最新にアップグレードされていることを確認してください

一般的な経験則として、Azure Functionsで一般的に成功するには:

  1. .NET Frameworkのプロジェクトのために使用v1の場合、またはANYご参照プロジェクトやNuGETパッケージのは、.NET Fxの依存関係を持っています。(したがって、.Net 4 + ...または.Net Coreではないもの。)

    これらの依存関係が複数のプロジェクトを対象としている場合でも、Functionsを使用すると、デプロイメント中にNuGET依存関係を評価するときに正しいプラットフォームを適切に検出できないため、デプロイメントが失敗する傾向があります。

  2. v2の使用ONLYのためのネットコアプロジェクト、あなたの参照はまた、唯一であることを確認してください。ネットコア

コードを段階的にコンパイルして公開します。また、AzureDevOps、GitHub、またはその他のソースコードリポジトリを使用して、Functionsで頻繁にコードをチェックインします。Functionsプロジェクトの初期段階では、複数の屈折とNuGETパッケージを頻繁に導入し、それらはローカルで機能しているように見えますが、デプロイすると機能しません。

  • ソースコードリポジトリを使用すると、新しいパッケージをインストールする前に変更をコミットしやすくなり、パッケージをインストールするとデプロイできないコードが発生した場合にロールバックできます。
  • 乱雑に見えますが、NuGetのバージョン管理のため、パッケージをインストールする前の状態に戻るため、そのパッケージをアンインストールするのは簡単ではなく、他のパッケージを非常に簡単にアップグレードしている可能性があります。 .Net Frameworkと.Net Coreの間のリソース。ただし、常にうまくいくとは限りません。または、Azure Functionsで競合を引き起こすいくつかの.Net Framework要素を保持する場合もあります。

役立つかもしれないいくつかの興味深い議論があります:


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.