Lỗi khi cố gắng xuất bản một chức năng azure từ Visual Studio


13

Tôi nhận được thông báo lỗi sau khi tôi cố gắng xuất bản chức năng của mình bằng Visual Studio, có ý tưởng nào để khắc phục điều này không?

System.AggregateException: Một hoặc nhiều lỗi xảy ra. ---> System.Exception: Publish đã gặp lỗi. Chúng tôi không thể xác định nguyên nhân lỗi. Kiểm tra nhật ký đầu ra để biết thêm chi tiết. --- Kết thúc dấu vết ngăn xếp ngoại lệ bên trong --- tại System.Threading.T Nhiệm.Task.Throw IfException (Boolean gồmTask HủyedExceptions) tại System.Threading.T Nhiệm.Task.Wait (Int32 millisecondsTimeout, CancellingToken CancToken) tại Microsoft.Pub. Model.DefaultPublishSteps. <> C__DisplayClass26_0.b__2 () tại System.Threading.T Nhiệm.Task`1.InnerInvoke () tại System.Threading.T Nhiệm.Task.Execute () --- Kết thúc dấu vết ngăn xếp từ vị trí trước đó ném --- tại System.R nb.CompilerService.TaskAwaiter.ThrowForNonSuccess (Nhiệm vụ tác vụ) tại System.R nb.CompilerService. TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Nhiệm vụ tác vụ) tại Microsoft.Publish.Framework.Model.DefaultPublishSteps.d__23.MoveNext () --- Kết thúc dấu vết ngăn xếp từ vị trí trước đó, ngoại lệ được ném --- tại System.R. (Tác vụ tác vụ) tại System.R.78.CompilerService.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Nhiệm vụ tác vụ) tại Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () gặp lỗi Chúng tôi không thể xác định nguyên nhân lỗi. Kiểm tra nhật ký đầu ra để biết thêm chi tiết. <--- Di chuyển .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Ngoại lệ # 0) System.Exception: Publish đã gặp lỗi. Chúng tôi không thể xác định nguyên nhân lỗi. Kiểm tra nhật ký đầu ra để biết thêm chi tiết. <--- Di chuyển .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Ngoại lệ # 0) System.Exception: Publish đã gặp lỗi. Chúng tôi không thể xác định nguyên nhân lỗi. Kiểm tra nhật ký đầu ra để biết thêm chi tiết. <--- d__213.MoveNext () ---> (Ngoại lệ bên trong # 0) System.Exception: Publish đã gặp lỗi. Chúng tôi không thể xác định nguyên nhân lỗi. Kiểm tra nhật ký đầu ra để biết thêm chi tiết. <--- d__213.MoveNext () ---> (Ngoại lệ bên trong # 0) System.Exception: Publish đã gặp lỗi. Chúng tôi không thể xác định nguyên nhân lỗi. Kiểm tra nhật ký đầu ra để biết thêm chi tiết. <---

System.Exception: Publish đã gặp lỗi. Chúng tôi không thể xác định nguyên nhân lỗi. Kiểm tra nhật ký đầu ra để biết thêm chi tiết.

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


Hiện tại tôi đang gặp phải một vấn đề tương tự trong Visual Studio 2019 - mặc dù tôi đang cố gắng xuất bản vào thư mục trong trường hợp của mình. Tôi vẫn đang cố gắng theo dõi những gì gây ra điều này, nhưng tôi đã thử điều này cho đến nay trong trường hợp của tôi: 1.) Xóa bộ nhớ cache NuGet, 2.) Xóa thư mục bin và obj 3.) Ngoài ra, cũng tạo một hồ sơ thư mục mới, Bạn thấy gì trong tệp nhật ký đầu ra? Có gì hữu ích không?
VirtualValentin

Bạn đã thử triển khai nó thông qua Git quaDeployment Center
pavle

Câu trả lời:


8

Bạn có thể thử this

Xóa hoàn toàn cài đặt WEBSITE_RUN_FROM_PACKAGE khỏi Cài đặt ứng dụng chức năng Azure khỏi Cổng thông tin Azure.


2
Tôi đã làm điều đó mà không có bất kỳ thành công.
Recusiwe

Điều này làm việc cho tôi. Tôi không chắc liệu nó có liên quan đến chức năng 'khởi động lại' chức năng Azure hay không khi thay đổi môi trường được thực hiện hoặc nếu đó là cấu hình chặn.
Justin Neff

5

Đây là sự cố hết thời gian của Visual Studio, có nghĩa là mã của bạn và một số cài đặt khác không phải là chìa khóa của vấn đề. Lỗi này xảy ra vì Visual đặt giới hạn thời gian chờ phát hành. (Tệp quá lớn hoặc tốc độ internet không ổn định)

Nếu dự án triển khai của bạn không quá lớn, bạn có thể đợi cho đến khi tốc độ mạng ổn định trước khi thử chạy nó. Tất nhiên, bạn cũng có thể thử các phương thức triển khai khác để tránh sự cố này, chẳng hạn như triển khai zip .


Tôi đã thành công khi triển khai nó bằng zipdeploy. Tuy nhiên, khi tôi kiểm tra nội dung Ứng dụng thì nó được cập nhật, nhưng khi tôi chạy chức năng, nó dường như chạy phiên bản cũ?
Recusiwe

@Recusiwe 'chạy phiên bản cũ' nghĩa là gì? Bạn có nghĩa là phiên bản của chức năng azure đã bị thay đổi Việc triển khai zip có giải quyết được vấn đề này không?
BowmanZhu

Với "phiên bản cũ", ý tôi là phiên bản cuối cùng tôi có thể xuất bản từ VS, không phải phiên bản được triển khai bằng zip. Nội dung ứng dụng chứa mã từ zip được triển khai, nhưng nó không chạy nó. Nó chạy một phiên bản cũ.
Recusiwe

@Recusiwe Phiên bản chức năng nào bạn đang sử dụng? IDE nào bạn đang sử dụng bây giờ? Và việc lắp ráp dự án của bạn là gì? ( .csprojTập tin) Tôi gặp phải lỗi tương tự trước đây, có vẻ như đó là một vấn đề lắp ráp thời gian đó. Đôi khi lỗi này chỉ xảy ra trong Visual Studio 2019. Bạn có thể thử sử dụng Visual Studio 2017 để xem liệu ngoại lệ này có còn tồn tại không. Nếu bạn đang sử dụng Visual Studio 2017, bạn có sử dụng Resharper không? Tôi đang cố gắng tái tạo lỗi của bạn và gặp một lỗi tương tự, nhưng tôi không chắc điều này có liên quan đến tình huống của bạn.
BowmanZhu

Ứng dụng chức năng v. 2 và Visual Studio 16.4.1
Recusiwe

0

Nếu không chia sẻ dự án của bạn trên một dạng chơi như GitHub, chúng tôi rất khó đưa ra lời khuyên cụ thể, có rất nhiều biến số, rất nhiều kết hợp các gói và tham chiếu NuGET mà dự án của bạn có thể có xung đột theo cách đó sẽ gây ra điều này lỗi.

Đặc biệt với Chức năng v2, tôi đã gặp vấn đề này hoặc những vấn đề tương tự nhiều lần. Một trong những yếu tố lớn nhất với Hàm là các khái niệm cạnh tranh giữa v1 và v2.

Khi bạn sử dụng trình hướng dẫn xuất bản Visual Studio để tạo tài nguyên đích trong Azure, nó có xu hướng thành công hơn, nếu bạn đã vật lộn với điều này trong một thời gian, tôi khuyên bạn nên theo quy trình này, như một bằng chứng về khái niệm nếu không có gì khác:

Lời khuyên này hoạt động tốt như nhau trong VS2017 và 2019

  1. Tạo một dự án chức năng mới trong phòng thu trực quan, trong cùng một giải pháp.
    • Sao chép tên của chức năng ban đầu của bạn
  2. Xuất bản chức năng lên MỚI tài nguyên Azure , sử dụng trình hướng dẫn xuất bản để tạo tài nguyên này.
  3. Nếu xuất bản thành công:
    • Chuyển mã dự án ban đầu của bạn sang dự án mới
    • Hãy chú ý đến các phiên bản của gói nuget mà bạn muốn mang theo, chúng và các phụ thuộc của chúng sẽ cần phải tuân thủ v2
  4. Nếu xuất bản thì KHÔNG thành công
    • Đảm bảo bạn nâng cấp Visual Studio của mình lên bản mới nhất
    • Đảm bảo Công cụ Azure của bạn cũng được nâng cấp lên bản mới nhất

Theo nguyên tắc chung, để thành công chung với Hàm Azure:

  1. Sử dụng v1 cho các dự án .Net Framework hoặc nếu BẤT K of dự án tham chiếu nào của bạn hoặc các gói NuGET có phụ thuộc .Net Fx. (vì vậy .Net 4 + ... hoặc bất cứ thứ gì không phải .Net Core .)

    Ngay cả khi những phụ thuộc đó nhắm vào nhiều dự án, với Chức năng , việc triển khai có xu hướng thất bại vì không thể phát hiện đúng nền tảng khi đánh giá các phụ thuộc NuGET trong quá trình triển khai.

  2. Sử dụng v2 CHỈ cho Net lõi dự án, đảm bảo rằng tài liệu tham khảo của bạn cũng chỉ có lõi Net

Biên dịch và xuất bản mã của bạn tăng dần, cũng sử dụng AzureDevOps hoặc GitHub hoặc các kho mã nguồn khác để kiểm tra mã của bạn thường xuyên với Hàm. Ở giai đoạn đầu của một dự án Chức năng, chúng tôi thường mang đến các gói điều chỉnh và gói NuGET và chúng dường như hoạt động tại địa phương nhưng không hoạt động khi chúng tôi triển khai.

  • sử dụng repo mã nguồn giúp dễ dàng thực hiện các thay đổi trước khi cài đặt các gói mới và khôi phục nếu cài đặt gói dẫn đến một mã không thể triển khai.
  • Có vẻ lộn xộn, nhưng do phiên bản NuGet, quay trở lại trạng thái trước khi cài đặt gói, nó không đồng bộ với việc gỡ cài đặt gói đó, nên có thể rất dễ dàng nâng cấp các gói khác và trong môi trường Azure thay đổi này, nhiều tác giả gói đã chọn để nâng cấp tài nguyên giữa .Net Framework và .Net Core, và không phải lúc nào họ cũng làm tốt điều đó, hoặc đôi khi việc giữ lại một số thành phần khung .Net sẽ gây ra xung đột trong Hàm Azure.

Có một số cuộc thảo luận thú vị có thể giúp:


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.