เกิดข้อผิดพลาดขณะพยายามเผยแพร่ฟังก์ชันสีน้ำเงินจาก Visual Studio


13

ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เมื่อฉันพยายามที่จะเผยแพร่ฟังก์ชั่นของฉันโดยใช้ Visual Studio ความคิดใด ๆ ที่จะแก้ไขได้อย่างไร

System.AggregateException: เกิดข้อผิดพลาดอย่างน้อยหนึ่งรายการ ---> System.Exception: Publish พบข้อผิดพลาด เราไม่สามารถระบุสาเหตุของข้อผิดพลาดได้ ตรวจสอบล็อกเอาต์พุตเพื่อดูรายละเอียดเพิ่มเติม --- สิ้นสุดของการติดตามสแต็กข้อยกเว้นภายใน --- ที่ System.Threading.Tasks.Task.ThrowIfExceptional (บูลีนรวมถึง TaskCanceledExceptions) ที่ System.Threading.Tasks.Task.Wait (Int32 มิลลิวินาทีเวลายกเลิกการยกเลิกการตั้งค่าเปิด) ที่ Microsoft.Publish.Framework Model.DefaultPublishSteps. <> c__DisplayClass26_0.b__2 () ที่ System.Threading.Tasks.Task`1.InnerInvoke () ที่ System.Threading.Task.Execute () --- สิ้นสุดการติดตามสแต็กจากตำแหน่งก่อนหน้านี้ที่มีข้อยกเว้น โยน --- ที่ System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (ภารกิจงาน) ที่ System.Runtime.CompilerServices TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task Task) ที่ Microsoft.Publish.Framework.Model.DefaultPublishSteps.d__23.MoveNext () --- สิ้นสุดการติดตามสแต็กจากตำแหน่งก่อนหน้านี้ที่ข้อยกเว้นถูกโยน --- ที่ระบบ (ภารกิจงาน) ที่ System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (ภารกิจงาน) ที่ Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213MoveNext () ---> (ข้อยกเว้นงานที่ #) การเผยแพร่ระบบ พบข้อผิดพลาด เราไม่สามารถระบุสาเหตุของข้อผิดพลาดได้ ตรวจสอบล็อกเอาต์พุตเพื่อดูรายละเอียดเพิ่มเติม <--- MoveNext () --- สิ้นสุดการติดตามสแต็กจากตำแหน่งก่อนหน้านี้ที่มีการโยนข้อยกเว้น --- ที่ System.Runtime.CompilerServices.TaskAwaiter งานที่ MicrosoftTrowForNonSuccess (Task Task) ที่ System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDugugger (Task Task) .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (ข้อยกเว้นภายใน # 0) System.Exception: Publish พบข้อผิดพลาด เราไม่สามารถระบุสาเหตุของข้อผิดพลาดได้ ตรวจสอบล็อกเอาต์พุตเพื่อดูรายละเอียดเพิ่มเติม <--- MoveNext () --- สิ้นสุดการติดตามสแต็กจากตำแหน่งก่อนหน้านี้ที่มีการโยนข้อยกเว้น --- ที่ System.Runtime.CompilerServices.TaskAwaiter งานที่ MicrosoftTrowForNonSuccess (Task Task) ที่ System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDugugger (Task Task) .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (ข้อยกเว้นภายใน # 0) System.Exception: Publish พบข้อผิดพลาด เราไม่สามารถระบุสาเหตุของข้อผิดพลาดได้ ตรวจสอบล็อกเอาต์พุตเพื่อดูรายละเอียดเพิ่มเติม <--- d__213.MoveNext () ---> (ข้อยกเว้นภายใน # 0) System.Exception: Publish พบข้อผิดพลาด เราไม่สามารถระบุสาเหตุของข้อผิดพลาดได้ ตรวจสอบล็อกเอาต์พุตเพื่อดูรายละเอียดเพิ่มเติม <--- d__213.MoveNext () ---> (ข้อยกเว้นภายใน # 0) System.Exception: Publish พบข้อผิดพลาด เราไม่สามารถระบุสาเหตุของข้อผิดพลาดได้ ตรวจสอบล็อกเอาต์พุตเพื่อดูรายละเอียดเพิ่มเติม <---

System.Exception: Publish พบข้อผิดพลาด เราไม่สามารถระบุสาเหตุของข้อผิดพลาดได้ ตรวจสอบล็อกเอาต์พุตเพื่อดูรายละเอียดเพิ่มเติม

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


ฉันพบปัญหาที่คล้ายกันในขณะนี้ใน Visual Studio 2019 - แม้ว่าฉันพยายามเผยแพร่ไปยังโฟลเดอร์ในกรณีของฉัน ฉันยังคงพยายามติดตามสิ่งที่เป็นสาเหตุของปัญหานี้ แต่ฉันลองมาแล้วในกรณีของฉัน: 1. ) ล้างแคชของ NuGet, 2. ) ลบโฟลเดอร์ bin และ obj 3. ) สร้างโปรไฟล์โฟลเดอร์ใหม่ด้วย คุณเห็นอะไรในไฟล์บันทึกผลลัพธ์ มีประโยชน์อะไรบ้าง?
VirtualValentin

คุณได้ลองใช้งานผ่าน Git ผ่านทางDeployment Center
26419

คำตอบ:


8

คุณลองได้ไหม this

ลบการตั้งค่า WEBSITE_RUN_FROM_PACKAGE ทั้งหมดออกจาก Azure Function การตั้งค่าแอปพลิเคชันจาก Azure Portal


2
ฉันทำอย่างนั้นไม่สำเร็จ
Recusiwe

สิ่งนี้ใช้ได้สำหรับฉัน ฉันไม่แน่ใจว่าเกี่ยวข้องกับมันหรือไม่ที่จะเริ่มต้นใหม่ 'ฟังก์ชัน Azure' เมื่อมีการเปลี่ยนแปลงสภาพแวดล้อมหรือมีการกำหนดค่าการบล็อก
Justin Neff

5

นี่เป็นปัญหาการหมดเวลาของ Visual Studio ซึ่งหมายความว่ารหัสของคุณและการตั้งค่าอื่น ๆ ไม่ใช่กุญแจสำคัญของปัญหา ข้อผิดพลาดนี้เกิดขึ้นเนื่องจาก Visual ตั้งค่าการ จำกัด การหมดเวลาในรุ่น (ไฟล์มีขนาดใหญ่เกินไปหรือความเร็วอินเทอร์เน็ตไม่เสถียร)

หากโครงการปรับใช้ของคุณไม่ใหญ่เกินไปคุณสามารถรอจนกว่าความเร็วเครือข่ายจะเสถียรก่อนที่จะพยายามเรียกใช้ แน่นอนคุณยังสามารถลองใช้วิธีการใช้งานอื่น ๆ เพื่อหลีกเลี่ยงปัญหานี้เช่นซิปปรับใช้


ฉันได้ประสบความสำเร็จในการปรับใช้โดยใช้ zipdeploy อย่างไรก็ตามเมื่อฉันตรวจสอบเนื้อหาของแอพจะมีการอัปเดต แต่เมื่อฉันเรียกใช้ฟังก์ชั่นดูเหมือนว่าจะใช้เวอร์ชั่นเก่าหรือไม่?
Recusiwe

@Recusiwe คำว่า 'run old version' หมายถึงอะไร? คุณหมายถึงรุ่นของฟังก์ชั่นสีฟ้ามีการเปลี่ยนแปลง deploy การปรับใช้ zip แก้ไขปัญหานี้ได้หรือไม่?
BowmanZhu

ด้วย "เวอร์ชันเก่า" ฉันหมายถึงเวอร์ชันล่าสุดที่ฉันสามารถเผยแพร่จาก VS ไม่ใช่เวอร์ชันที่ปรับใช้กับไปรษณีย์ เนื้อหาแอพมีรหัสจากรหัสไปรษณีย์ที่นำไปใช้ แต่ไม่ได้เรียกใช้ มันรันเวอร์ชั่นเก่า
Recusiwe

@Recusiwe คุณใช้ฟังก์ชันรุ่นใดในตอนนี้ IDE ที่คุณใช้อยู่ตอนนี้ และแอสเซมบลีของโครงการของคุณคืออะไร ( .csprojไฟล์) ฉันพบข้อผิดพลาดที่คล้ายกันก่อนดูเหมือนว่าปัญหาการชุมนุมในเวลานั้น บางครั้งข้อผิดพลาดนี้เกิดขึ้นเฉพาะใน Visual Studio 2019 คุณสามารถลองใช้ Visual Studio 2017 เพื่อดูว่าข้อยกเว้นนี้ยังคงอยู่หรือไม่ หากคุณใช้ Visual Studio 2017 คุณใช้ Resharper หรือไม่ ฉันพยายามทำซ้ำข้อผิดพลาดของคุณและพบสิ่งที่คล้ายกัน แต่ฉันไม่แน่ใจว่าสิ่งนี้เกี่ยวข้องกับสถานการณ์ของคุณ
BowmanZhu

แอปฟังก์ชั่น v. 2 และ Visual Studio 16.4.1
Recusiwe

0

โดยไม่ต้องแบ่งปันโครงการของคุณใน playform อย่าง GitHub มันยากสำหรับเราที่จะให้คำแนะนำเฉพาะมีตัวแปรมากมายชุดของแพคเกจ NuGET และการอ้างอิงที่โครงการของคุณอาจมีความขัดแย้งในลักษณะที่จะทำให้เกิดปัญหานี้ ความผิดพลาด

โดยเฉพาะอย่างยิ่งกับฟังก์ชั่น v2 ฉันเคยประสบปัญหานี้หรือปัญหาที่คล้ายกันหลายครั้ง หนึ่งในปัจจัยที่ใหญ่ที่สุดที่มีฟังก์ชั่นคือแนวคิดการแข่งขันระหว่าง v1 และ v2

เมื่อคุณใช้วิซาร์ดการเผยแพร่ Visual Studio เพื่อสร้างทรัพยากรเป้าหมายใน Azure ก็มีแนวโน้มที่จะประสบความสำเร็จมากขึ้นถ้าคุณประสบปัญหานี้มาระยะหนึ่งผมขอแนะนำให้คุณทำตามขั้นตอนนี้เพื่อพิสูจน์แนวคิดหากไม่มีสิ่งใด:

คำแนะนำนี้ใช้ได้ดีใน VS2017 และ 2019

  1. สร้างฟังก์ชั่นโครงการใหม่ใน Visual Studio ด้วยวิธีการแก้ปัญหาเดียวกัน
    • ทำซ้ำชื่อของฟังก์ชั่นดั้งเดิมของคุณ
  2. เผยแพร่ฟังก์ชันไปยังทรัพยากร Azure ใหม่ใช้ตัวช่วยสร้างการประกาศเพื่อสร้างทรัพยากรนี้
  3. หากการเผยแพร่สำเร็จ:
    • ย้ายรหัสโครงการเดิมของคุณไปยังโครงการใหม่
    • ใส่ใจกับเวอร์ชันของแพ็คเกจ nuget ที่คุณต้องการนำมาใช้พวกเขาและการอ้างอิงของพวกเขาจะต้องเป็นไปตาม v2
  4. หากการเผยแพร่ไม่ประสบความสำเร็จ
    • ตรวจสอบให้แน่ใจว่าคุณอัพเกรด Visual Studio เป็นรุ่นล่าสุด
    • ตรวจสอบให้แน่ใจว่าเครื่องมือ Azure ของคุณได้รับการอัพเกรดเป็นรุ่นล่าสุด

ตามกฎทั่วไปสำหรับความสำเร็จทั่วไปกับฟังก์ชัน Azure:

  1. ใช้ v1 สำหรับโครงการ. Net Framework หรือถ้าโครงการอ้างอิงใด ๆของคุณหรือแพ็คเกจ NuGET มีการพึ่งพา. Net Fx (ดังนั้น. Net 4 + ... หรืออะไรก็ตามที่ไม่ใช่. Net Core )

    แม้ว่าการอ้างอิงเหล่านั้นจะกำหนดเป้าหมายหลายโครงการด้วยฟังก์ชั่นการปรับใช้มีแนวโน้มที่จะล้มเหลวเนื่องจากไม่สามารถตรวจสอบแพลตฟอร์มที่ถูกต้องเมื่อประเมินการพึ่งพา NuGET ในระหว่างการปรับใช้

  2. ใช้ v2 เท่านั้นสำหรับ. Net Core project ตรวจสอบให้แน่ใจว่าการอ้างอิงของคุณเป็น. net coreเท่านั้น

คอมไพล์และเผยแพร่โค้ดของคุณแบบเพิ่มหน่วยนอกจากนี้ยังใช้ AzureDevOps หรือ GitHub หรือที่เก็บซอร์สโค้ดอื่น ๆ เพื่อตรวจสอบโค้ดของคุณบ่อยครั้งด้วยฟังก์ชัน ในช่วงแรกของโครงการฟังก์ชั่นเรามักจะนำ reflences mutliple และแพคเกจ NuGET และพวกเขาดูเหมือนจะทำงานในท้องถิ่น แต่ไม่เมื่อเราปรับใช้

  • การใช้ repo ซอร์สโค้ดทำให้ง่ายต่อการยอมรับการเปลี่ยนแปลงก่อนที่จะติดตั้งแพ็กเกจใหม่และย้อนกลับหากการติดตั้งแพ็กเกจส่งผลให้รหัสไม่สามารถนำไปใช้งานได้
  • ดูเหมือนจะยุ่งเหยิง แต่เนื่องจาก NuGet เวอร์ชันกลับไปสู่สถานะก่อนที่จะติดตั้งแพคเกจมันไม่ง่ายเหมือนการถอนการติดตั้งแพคเกจมันอาจง่ายมากที่จะอัพเกรดแพ็คเกจอื่น ๆ และในสภาพแวดล้อม Azure ที่เปลี่ยนไปนี้ ทรัพยากรระหว่าง. Net Framework และ. Net Core และไม่ได้ทำให้ดีเสมอไปหรือบางครั้งองค์ประกอบ. NET Framework บางอย่างที่จะทำให้เกิดความขัดแย้งในฟังก์ชัน Azure

มีการสนทนาที่น่าสนใจที่อาจช่วยได้:


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.