Galat saat mencoba menerbitkan fungsi biru dari Visual Studio

13

Saya mendapatkan pesan kesalahan berikut ketika saya mencoba untuk mempublikasikan fungsi saya menggunakan Visual Studio, ada ide bagaimana cara memperbaikinya?

System.AggregateException: Satu atau lebih kesalahan terjadi. ---> System.Exception: Publish telah mengalami kesalahan. Kami tidak dapat menentukan penyebab kesalahan. Periksa log keluaran untuk detail lebih lanjut. --- Akhir jejak tumpukan pengecualian dalam --- di System.Threading.Tasks.Task.ThrowIfExceptional (termasuk BooleanTaskCanceledExceptions) di System.Threading.Task.Wait (Int32 millisecondsTimeout, PembatalanBatalan pembatalanToken) di Microsoft.Publish.Framework. Model.DefaultPublishSteps. <> C__DisplayClass26_0.b__2 () di System.Threading.Tasks.Task`1.InnerInvoke () di System.Threading.Tasks.Task.Execute () --- Akhir jejak stack dari lokasi sebelumnya di mana pengecualian adalah dilempar --- di System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Tugas tugas) di System.Runtime.CompilerServices. TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Tugas tugas) di Microsoft.Publish.Framework.Model.DefaultPublishSteps.d__23.MoveNext () --- Akhir jejak stack dari lokasi sebelumnya di mana pengecualian dilemparkan --- di System.Runtime.CompilerServices.TaskAwaiter.TugasProsesTerima Pesan. (Tugas tugas) di System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Tugas tugas) di Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Pengecualian Batin memiliki #Exception:). mengalami kesalahan. Kami tidak dapat menentukan penyebab kesalahan. Periksa log keluaran untuk detail lebih lanjut. <--- MoveNext () --- Akhir jejak tumpukan dari lokasi sebelumnya di mana pengecualian dilemparkan --- di System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Tugas tugas) di System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Pengecualian Dalam # 0) Sistem.Exception: Penerbitan telah mengalami kesalahan. Kami tidak dapat menentukan penyebab kesalahan. Periksa log keluaran untuk detail lebih lanjut. <--- MoveNext () --- Akhir jejak tumpukan dari lokasi sebelumnya di mana pengecualian dilemparkan --- di System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Tugas tugas) di System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Pengecualian Dalam # 0) Sistem.Exception: Penerbitan telah mengalami kesalahan. Kami tidak dapat menentukan penyebab kesalahan. Periksa log keluaran untuk detail lebih lanjut. <--- d__213.MoveNext () ---> (Pengecualian Dalam # 0) System.Exception: Publikasi mengalami kesalahan. Kami tidak dapat menentukan penyebab kesalahan. Periksa log keluaran untuk detail lebih lanjut. <--- d__213.MoveNext () ---> (Pengecualian Dalam # 0) System.Exception: Publikasi mengalami kesalahan. Kami tidak dapat menentukan penyebab kesalahan. Periksa log keluaran untuk detail lebih lanjut. <---

System.Exception: Publikasi mengalami kesalahan. Kami tidak dapat menentukan penyebab kesalahan. Periksa log keluaran untuk detail lebih lanjut.

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

Recusiwe
sumber
Saya mengalami masalah yang sama saat ini di Visual Studio 2019 - meskipun saya mencoba menerbitkan ke folder dalam kasus saya. Saya masih mencoba melacak apa yang menyebabkan ini, tetapi saya sudah mencoba sejauh ini dalam kasus saya: 1.) Hapus cache NuGet, 2.) Hapus folder bin dan obj 3.) Membuat profil folder baru Juga, apa yang Anda lihat di file log output? Adakah yang berguna?
VirtualValentin
Sudahkah Anda mencoba menyebarkannya melalui Git melaluiDeployment Center
pavle

Jawaban:

8

Bisakah kamu mencoba this

Hapus pengaturan WEBSITE_RUN_FROM_PACKAGE sepenuhnya dari Pengaturan Aplikasi Fungsi Azure dari Portal Azure.

Sajeetharan
sumber
2
Saya telah melakukan itu tanpa hasil.
Recusiwe
Ini berhasil untuk saya. Saya tidak yakin apakah itu terkait dengan itu 'me-restart' Fungsi Azure ketika perubahan lingkungan dibuat atau apakah itu konfigurasi pemblokiran.
Justin Neff
5

Ini adalah masalah batas waktu Visual Studio, yang berarti bahwa kode Anda dan beberapa pengaturan lain bukanlah kunci untuk masalah tersebut. Kesalahan ini terjadi karena Visual menetapkan batas waktu habis pada rilis. (File terlalu besar atau kecepatan internet tidak stabil)

Jika proyek penempatan Anda tidak terlalu besar, Anda bisa menunggu sampai kecepatan jaringan stabil sebelum mencoba menjalankannya. Tentu saja, Anda juga dapat mencoba metode penempatan lain untuk menghindari masalah ini, seperti penerapan zip .

BowmanZhu
sumber
Saya sudah berhasil menerapkannya menggunakan zipdeploy. Namun, ketika saya memeriksa konten Aplikasi, itu diperbarui, tetapi ketika saya menjalankan fungsinya, sepertinya menjalankan versi lama?
Recusiwe
@Recusiwe Apa artinya 'menjalankan versi lama'? Apakah maksud Anda versi fungsi biru telah diubah? Apakah penyebaran zip menyelesaikan masalah ini?
BowmanZhu
Dengan "versi lama" yang saya maksud adalah versi terakhir yang dapat saya terbitkan dari VS, bukan versi zip. Konten aplikasi berisi kode dari zip yang digunakan, tetapi tidak menjalankannya. Ini menjalankan versi lama.
Recusiwe
@Recusiwe Versi fungsi mana yang Anda gunakan sekarang? IDE mana yang Anda gunakan sekarang? Dan apa perakitan proyek Anda? ( .csprojFile) Saya menghadapi kesalahan serupa sebelumnya, sepertinya masalah perakitan saat itu. Terkadang kesalahan ini hanya terjadi di Visual Studio 2019. Anda dapat mencoba menggunakan Visual Studio 2017 untuk melihat apakah pengecualian ini masih ada. Jika Anda menggunakan Visual Studio 2017, apakah Anda menggunakan Resharper? Saya mencoba mereproduksi kesalahan Anda dan bertemu yang serupa, tetapi saya tidak yakin ini terkait dengan situasi Anda.
BowmanZhu
Aplikasi fungsi v. 2 dan Visual Studio 16.4.1
Recusiwe
0

Tanpa membagikan proyek Anda pada bentuk permainan seperti GitHub, sangat sulit bagi kami untuk menawarkan saran khusus, ada begitu banyak variabel, begitu banyak kombinasi paket dan referensi NuGET sehingga proyek Anda mungkin memiliki konflik sedemikian rupa sehingga akan menyebabkan hal ini. kesalahan.

Terutama dengan Fungsi v2, saya telah mengalami masalah ini atau yang serupa beberapa kali. Salah satu faktor terbesar dengan Fungsi adalah konsep yang bersaing antara v1 dan v2.

Saat Anda menggunakan panduan penerbitan Visual Studio untuk membuat sumber daya target di Azure, itu cenderung memiliki kesuksesan yang lebih besar, jika Anda telah berjuang dengan ini untuk sementara waktu saya sarankan Anda mengikuti proses ini, sebagai bukti konsep jika tidak ada yang lain:

Saran ini berfungsi sama baiknya di VS2017 dan 2019

  1. Buat Proyek Fungsi baru di studio visual, dalam solusi yang sama.
    • Gandakan nama fungsi asli Anda
  2. Publikasikan fungsi ke sumber Azure BARU , gunakan panduan terbitkan untuk membuat sumber ini.
  3. Jika penerbitan berhasil:
    • Pindahkan kode proyek asli Anda ke proyek baru
    • Perhatikan versi paket nuget yang ingin Anda sampaikan, mereka dan dependensinya harus sesuai dengan v2
  4. Jika penerbitan TIDAK berhasil
    • Pastikan Anda meningkatkan Visual Studio Anda ke yang terbaru
    • Pastikan Azure Tools Anda juga ditingkatkan ke yang terbaru

Sebagai aturan umum, untuk kesuksesan umum dengan Fungsi Azure:

  1. Gunakan v1 untuk proyek-proyek Net Framework, atau jika APAPUN proyek referensi Anda atau paket nuget memiliki Net Fx dependensi. (jadi .Net 4 + ... atau apa pun yang bukan .Net Core .)

    Bahkan ketika dependensi tersebut menargetkan beberapa proyek, dengan Fungsi penyebarannya cenderung gagal karena tidak dapat mendeteksi platform yang benar saat mengevaluasi dependensi NuGET selama penyebaran.

  2. Gunakan v2 ONLY untuk proyek .Net Core , pastikan bahwa referensi Anda juga hanya .Net core

Kompilasi dan publikasikan kode Anda secara bertahap, juga gunakan AzureDevOps atau GitHub atau repositori kode sumber lainnya untuk mendececekan kode Anda sering dengan Fungsi. Pada tahap awal proyek Functions, kita sering membawa refrence mutliple dan paket NuGET dan mereka tampaknya bekerja secara lokal tetapi tidak ketika kita menyebarkan.

  • menggunakan repo kode sumber membuatnya mudah untuk melakukan perubahan sebelum menginstal paket baru dan rollback jika menginstal paket menghasilkan kode un-deployable.
  • Tampaknya berantakan, tetapi karena versi NuGet, kembali ke negara bagian sebelum menginstal paket yang tidak dianggap sebagai meng-uninstall paket itu, mungkin sangat mudah telah meningkatkan paket lain, dan dalam lingkungan Azure yang berubah ini banyak penulis paket telah memilih untuk memutakhirkan paket mereka. sumber daya antara .Net Framework dan .Net Core, dan tidak selalu mereka melakukannya dengan baik, atau terkadang mempertahankan beberapa elemen .Net framework yang akan menyebabkan konflik dalam Fungsi Azure.

Ada beberapa diskusi menarik yang dapat membantu:

Chris Schaller
sumber
0

Solusinya adalah memperbarui ke SDK terbaru.

Recusiwe
sumber
Itu tidak berhasil untuk saya.
Justin Neff