2015-07-23 17 views
9

Sử dụng tùy chọn nhấp chuột phải, Xuất bản dưới dạng Azure WebJob ... trong VisualStudio 2015, công việc được xuất bản tuy nhiên runMode dường như bị bỏ qua.Visual Studio 2015 Xuất bản WebJobs Phát hành

Trong tập tin của tôi, tôi đã cài đặt sau, tuy nhiên công việc liên tục thiết lập để một On việc Nhu cầu trong cổng sau khi xuất bản:

{ 
    "$schema": "http://schemastore.org/schemas/json/webjob-publish-settings.json", 
    "webJobName": "MyJob", 
    "startTime": "2015-07-21T00:30:00-08:00", 
    "endTime": null, 
    "jobRecurrenceFrequency": "Day", 
    "interval": 1, 
    "runMode": "Scheduled" 
} 

Sử dụng Visual Studio 2015 với các Azure SDK cho .NET 2.7

đây là lỗi trong cửa sổ đầu ra sau khi xuất bản lỗi: có lỗi xảy ra trong khi tạo ra lịch trình WebJob: không thể nạp kiểu 'Microsoft.IdentityModel.Clients.ActiveDirectory.ActiveDirectoryAuthenticationException' từ lắp ráp 'Microsoft.IdentityModel.Clients. ActiveDirectory, Phiên bản = 2.16.0.0, Văn hóa = trung lập, PublicKeyToken = 31bf3856ad364e35 '.

Trả lời

15

Dựa vào lỗi, vấn đề là bạn phải đăng nhập vào Cloud Explorer trong Visual Studio để công việc được lên lịch đúng cách.

Công việc vẫn sẽ xuất bản nếu bạn chưa đăng nhập, tuy nhiên nó sẽ chỉ có sẵn OnDemand.

+2

+1 Được rồi, tôi phải hỏi. Những gì một phần của "Không thể tải loại 'Microsoft.IdentityModel.Clients.ActiveDirectory.ActiveDirectoryAuthenticationException' từ lắp ráp 'Microsoft.IdentityModel.Clients.ActiveDirectory, Phiên bản = 2.16.0.0, Văn hóa = trung lập, PublicKeyToken = 31bf3856ad364e35'" hét lên "oh yeah, chỉ cần mở Cloud Explorer và đăng nhập "cho bạn? Nó làm việc, tất nhiên, nhưng tôi tò mò (như tôi chắc chắn những người khác, quá) như thế nào bạn đã thực hiện kết nối? – nsturdivant

+2

Tôi nghĩ về nó là một vấn đề xác thực, vì vậy chỉ cần bắt đầu nhìn vào những nơi trong ứng dụng mà bạn thực sự xác thực - xác thực với Cloud Explorer, và phần còn lại là lịch sử. – Pat

+1

Điều này không có tác dụng với tôi .. Lỗi tương tự, cùng một vấn đề, nhưng vẫn tồn tại, mặc dù tôi đã đăng nhập vào Cloud Explorer (như trong, tôi thấy ứng dụng web của mình, v.v .. Vì vậy, tôi đoán mình đã đăng nhập) – Noppey

0

Khi triển khai cho Visual Studio, hãy kiểm tra Cửa sổ đầu ra. Bạn sẽ thấy rằng nó xây dựng dự án của bạn, và sau đó nó dường như đã kết thúc. Khoảng 30-90 giây sau đó, bạn sẽ thấy bất kỳ lỗi nào có thể xảy ra với phần lập lịch của triển khai. Bạn cũng sẽ thấy chúng trong cửa sổ "Azure App Service Activity", sẽ cung cấp cho bạn nhật ký đầy đủ về việc triển khai.

Vì có sự chậm trễ mà không có gì xảy ra trong khi triển khai, thật dễ dàng bỏ lỡ bất kỳ thông báo lỗi nào có thể xảy ra. Nếu bạn thấy lỗi, hãy đăng lỗi tại đây và chúng tôi có thể gỡ lỗi thêm. Cảm ơn.

+0

Đây là đầu ra. Nó không có vẻ quan trọng bao lâu tôi chờ đợi, nó là như nhau. Sau khi .. Xuất bản Thành công. Đây là lỗi duy nhất: D: \ projects \ BASEE \ packages \ Microsoft.Web.WebJobs.Publish.1.0.2 \ tools \ webjobs.console.targets (110,5): Lỗi: Đã xảy ra lỗi khi tạo lịch trình WebJob: Không thể tải loại 'Microsoft.IdentityModel.Clients.ActiveDirectory.ActiveDirectoryAuthenticationException' từ assembly 'Microsoft.IdentityModel.Clients.ActiveDirectory, Phiên bản = 2.16.0.0, Văn hóa = trung lập, PublicKeyToken = 31bf3856ad364e35'. – Pat

+0

Bạn đã thử thêm phiên bản cụ thể đó thông qua nuget vào dự án của bạn chưa? –

+2

Vấn đề là bạn phải đăng nhập vào trình thám hiểm đám mây trong studio trực quan. Điều đó giải quyết vấn đề. – Pat

9

Hiện tại, có một cách tốt hơn để lập lịch biểu các WebJob sử dụng các biểu thức CRON, điều này đơn giản hơn và tránh tất cả các vấn đề về Trình lập lịch biểu được đề cập ở đây.

Để sử dụng nó, làm như sau:

  • Azure của bạn Web App phải chạy ở chế độ Standard, và có 'Always On' được kích hoạt.
  • Khi tạo WebJob trong Visual Studio, hãy chọn 'Chạy theo yêu cầu' thay vì 'Chạy theo lịch biểu'.
  • Tạo tệp settings.job tại thư mục gốc của WebJob của bạn. Đảm bảo đặt Copy to Output Directory = 'Sao chép nếu mới hơn'. Tập tin này sẽ chứa một cái gì đó như thế này (mà làm cho nó chạy trên đỉnh của mỗi giờ):

{ "schedule": "0 0 * * * *" }

Để biết thêm thông tin, về kỹ thuật này, xem các liên kết sau đây:

https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/#CreateScheduledCRON

http://blog.amitapple.com/post/2015/06/scheduling-azure-webjobs/

+0

Điều này làm cho cuộc sống với các công việc web dễ dàng hơn rất nhiều, cảm ơn! – Noppey

+0

Xin chào David, làm cách nào để tôi trang bị thêm một wjob đã lên lịch hiện có. tức là phải làm gì với ấn bản-cài đặt-json của tôi? – GGleGrand

+0

Chỉ cần làm cho nó giống như một WebJobs theo yêu cầu. ví dụ. xem [tại đây] (https://github.com/davidebbo-test/WebAppWithWebJobsVS/blob/5471db17dc3ba9ccfc632dde3feecdf69c5cf853/MyTriggeredWebJob/Properties/webjob-publish-settings.json). –

10

Trong trường hợp của tôi mặc dù tôi đã đăng nhập vào Cloud Explorer, tôi vẫn nhận được cùng một công cụ xóa r.

Tôi có SDK Azure mới nhất cho .NET (VS 2015) được cài đặt dưới dạng văn bản. Tôi phải cập nhật gói NuGet của mình Microsoft.Web.WebJobs.Publish từ phiên bản 1.0.2 lên phiên bản mới nhất là 1.0.10. NuGet Package Upgrade

Cuối cùng, công việc web đã được xuất bản thành công!

+0

Cảm ơn - điều này cũng đã sửa nó cho tôi. –

+0

Cũng cần lưu ý, đối với giải pháp này, tất cả các dự án tham chiếu gói NuGet này phải được cập nhật (phiên bản hiện tại 1.0.11) hoặc bạn có thể tiếp tục gặp lỗi. – Pat

Các vấn đề liên quan