Vai trò Azure của tôi grabs stuff to process from a database - nó giữ một phiên bản System.Data.SqlClient.SqlConnection
và định kỳ tạo một cá thể SqlCommand
và thực thi truy vấn SQL.Làm cách nào để giải quyết đột ngột mất kết nối với SQL Azure trong vai trò Azure của tôi?
Bây giờ một lần trong một thời gian (thường là một lần trong vài ngày) chạy một truy vấn sẽ kích hoạt một SqlException
ngoại lệ
Dịch vụ này đã gặp sự cố thực hiện yêu cầu của bạn. Vui lòng thử lại. Mã lỗi 40143. Đã xảy ra lỗi nghiêm trọng trên lệnh hiện tại. Các kết quả, nếu có, cần được loại bỏ.
Mà tôi đã nhìn thấy nhiều lần và bây giờ mã của tôi bắt nó, gọi Dispose()
trên SqlConnection
dụ và sau đó mở lại kết nối và thử lại truy vấn. Thông tin sau thường dẫn đến một ngoại lệ SqlException
khác
Hết hạn. Khoảng thời gian chờ trôi qua trước khi hoàn thành thao tác hoặc máy chủ không phản hồi.
Có vẻ như máy chủ SQL Azure không phản hồi hoặc không khả dụng vì bất kỳ lý do gì.
Hiện tại mã của tôi không bắt ngoại lệ thứ hai, nó được lan truyền bên ngoài RoleEntryPoint.Run()
và vai trò được khởi động lại. Khởi động lại thường mất khoảng mười phút và sau khi hoàn thành vấn đề đã biến mất trong một ngày hoặc lâu hơn.
Tôi không thích vai trò của mình đang khởi động lại - phải mất một lúc và chức năng dịch vụ của tôi bị cản trở. Tôi muốn làm điều gì đó thông minh hơn.
Chiến lược để giải quyết vấn đề này là gì? Tôi có nên thử lại truy vấn nhiều lần và bao nhiêu lần và với khoảng thời gian nào không? Tôi có nên làm gì khác không? Khi nào tôi bỏ cuộc và để vai trò vừa mới khởi động lại?
Cũng có sẵn qua nuget. – dunnry
Cảm ơn dunnry Tôi đã không phát hiện ra điều đó. Tôi đổ lỗi cho Wade vì không giữ cho chúng tôi đúng cách được cập nhật;) –
Trang web Xử lý lỗi tạm thời có lỗi không ổn định: bị lỗi. – Rory