Hiện tại trong Azure khi aa WebJob ném ngoại lệ, ngoại lệ bị bắt và xử lý bởi JobHost
(bằng cách nào đó) và sau đó ghi lại ngoại lệ cho trang tổng quan có sẵn thông qua thanh công cụ Web Ứng dụng trong đó webjob được lưu trữ. Có cách nào để ngăn chặn việc xử lý lỗi hoặc ghi đè lên nó để tôi có thể cắm vào cá thể Thông tin chi tiết về ứng dụng của mình không?Làm thế nào để chặn một lỗi Azure WebJob/ngoại lệ
Trả lời
Hãy xem một số tài liệu azure here. Bạn có thể đính kèm một handler cho sự ngoại lệ xử lý AppDomain
chưa biết (lấy từ các diễn đàn):
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
// ...
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
ExceptionTelemetry excTelemetry = new ExceptionTelemetry((Exception)e.ExceptionObject);
excTelemetry.SeverityLevel = SeverityLevel.Critical;
excTelemetry.HandledAt = ExceptionHandledAt.Unhandled;
telemetryClient.TrackException(excTelemetry);
telemetryClient.Flush();
}
Thực ra tôi đã tìm thấy một cái gì đó tương tự trong các tài liệu cho Raygun. Vấn đề với cách tiếp cận này là tôi không thể đảm bảo bất kỳ số liệu hoặc thuộc tính bổ sung nào mà tôi đã tạo trong công việc được ghi lại trừ khi tôi xây dựng một số xử lý ngoại lệ rất lộn xộn cho mọi câu lệnh ném. Nếu tôi đi đến loại logic đó, tôi cũng có thể chỉ định các phương thức công việc trực tiếp –
hmmm ... Tôi hiện đang nghĩ đến một số từ điển để lưu trữ các cặp khóa/giá trị có thể được lưu trữ trong một thuộc tính toàn cầu có thể được sử dụng để lưu trữ thông tin được truyền cho AI. –
@AlexMarshall có đưa bạn đến DI Container trong webjob của bạn không? – Thomas
Bạn có thể sử dụng Azure WebJobs SDK Extensions: có một ErrorTrigger
để bạn có thể sử dụng để đánh chặn unhandled trường hợp ngoại lệ:
public class UnhandledErrorTrigger : IDisposable
{
private readonly TelemetryClient _telemetryClient;
public UnhandledErrorTrigger(TelemetryClient telemetryClient)
{
_telemetryClient = telemetryClient;
}
public void UnHandledException([ErrorTrigger("0:01:00", 1)] TraceFilter filter, TextWriter log)
{
foreach (var traceEvent in filter.Events)
{
_telemetryClient.TrackException(traceEvent.Exception);
}
// log the last detailed errors to the Dashboard
log.WriteLine(filter.GetDetailedMessage(1));
}
public void Dispose()
{
_telemetryClient.Flush();
}
}
Để đăng ký các phần mở rộng Lỗi, gọi config.UseCore()
trong mã khởi động của bạn:
private static void Main()
{
var config = new JobHostConfiguration();
config.UseCore();
...
new JobHost(config).RunAndBlock();
}
Vì vậy, nếu bạn là bằng cách sử dụng một container IoC, bạn có thể dễ dàng tiêm TelemetryClient của bạn. Để cấu hình một activator việc làm cho webjob bạn có thể xem bài này:
- 1. Làm thế nào để ngăn chặn XMLReader ném không hợp lệ XML nhân vật ngoại lệ
- 2. Làm thế nào để xem các lỗi bị chặn bởi '@'?
- 3. Làm thế nào để ngăn chặn thông báo lỗi OpenCV
- 4. Làm thế nào để ngăn chặn một sợi?
- 5. Làm cách nào để chặn ngoại lệ bế tắc kênh?
- 6. Làm thế nào để bắt lỗi/ngoại lệ trong R?
- 7. Làm cách nào để bạn chặn tất cả Ngoại lệ?
- 8. Làm thế nào để Ngưng Azure IIS phụ Lỗi Tình trạng Mã Query String
- 9. Ứng dụng web: Tính khả dụng cao/Làm thế nào để ngăn chặn một điểm lỗi?
- 10. Làm thế nào để ngăn chặn một NSInvocationOperation?
- 11. AngularJS: Làm thế nào để ngăn chặn một yêu cầu
- 12. Làm thế nào để làm cho SMTPHandler không chặn
- 13. Làm cách nào để chặn một số lỗi CSS nhất định trong Aptana Studio 3?
- 14. Làm cách nào để thêm trình chặn chặn ngoại lệ toàn cầu vào máy chủ gRPC?
- 15. Làm thế nào để xóa một thư mục trong một container blob Azure
- 16. iOS5: Làm thế nào để ngăn chặn ngoại lệ cho phương pháp rectForRowAtIndexPath
- 17. Làm thế nào để gỡ lỗi một chương trình khi nó treo w/out ngoại lệ?
- 18. Làm thế nào để gỡ lỗi một std :: ngoại lệ bad_cast
- 19. Làm thế nào để gỡ lỗi Azure Cosmos DB lưu trữ thủ tục?
- 20. Làm thế nào để gỡ lỗi SQL Server 2014 sao lưu được quản lý Azure?
- 21. Làm thế nào để ngăn chặn một System.IndexOutOfRangeException trong một LINQ WHERE?
- 22. Làm thế nào để ghi đè Azure kết nối Sql trong cổng thông tin Azure
- 23. Làm thế nào để tăng thời gian chờ trang để ngăn chặn lỗi 504?
- 24. Làm thế nào để ngăn chặn lỗi làm tròn trong c + +?
- 25. Làm thế nào để nêu một ngoại lệ trong VB.NET
- 26. Làm thế nào để GROUP BY với một ngoại lệ?
- 27. Làm thế nào để tái ném một ngoại lệ
- 28. Làm thế nào để Redis chạy trên Azure?
- 29. Làm thế nào để xác minh Azure Load Balancer?
- 30. Làm thế nào để gỡ lỗi một StackOverflowException trong .NET
Kiểm tra này? http://stackoverflow.com/questions/31798640/monitoring-azure-webjobs – Igorek