2015-04-24 22 views
11

Tôi đã tìm lỗi này xảy ra liên tục trên một cuộc gọi AJAX đến một Azure ASP.NET Website, và hôm nay tôi cuối cùng đã bắt được nó trong nhật ký của chúng tôi. Tôi đã nghi ngờ một khóa đã chặn các hoạt động, nhưng có vẻ như nó không cố gắng để kết nối với cơ sở dữ liệu SQL Azure.Thời gian chờ kết nối gián đoạn trong Azure SQL trên AJAX Yêu cầu

Dưới đây là thông điệp ngoại lệ:

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. 
This failure occurred while attempting to connect to the routing destination. 
The duration spent while attempting to connect to the original server was - 
[Pre-Login] initialization=28; handshake=43; [Login] initialization=0; authentication=0; [Post-Login] complete=2; 

Đây là chuỗi kết nối Tôi đang sử dụng:

Server=tcp:<server>,1433;Database=<database>;User ID=<user>;Password=<password>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30 

Cả hai trang web và cơ sở dữ liệu SQL Azure là ở cùng vùng. Quy mô của cơ sở dữ liệu là Chuẩn - S0 và Trang web Azure là một phiên bản Chuẩn - Nhỏ.

Có ai trong số các bạn gặp sự cố này không?

+1

Điều này có xảy ra liên tục hay không? Bạn có xử lý lỗi tạm thời và thử lại logic được tích hợp trong mã của bạn không? Đọc http://azure.microsoft.com/en-us/documentation/articles/sql-database-connect-central-recommendations/ để biết các đề xuất và phương pháp hay nhất. – Shantanu

+0

@Shantanu Cảm ơn bạn đã đề xuất. Tôi nghĩ rằng việc sử dụng Xử lý lỗi tạm thời là giải pháp đúng, nhưng có thể không phải vì vấn đề mà tôi đang cố giải quyết. Ứng dụng là một loạt các câu hỏi mà người dùng yêu cầu một cá nhân qua điện thoại và sau đó ghi lại câu trả lời của họ. Nó gây ra vấn đề cho người dùng nếu điều này mất nhiều hơn 5 giây. Tôi đã nâng cấp cơ sở dữ liệu lên chuẩn S2 dường như đã giải quyết được vấn đề thời gian chờ. – TheJesterCrown

+0

Bạn thấy loại tải nào cho ứng dụng của mình? Có bao nhiêu người dùng đồng thời? – Shantanu

Trả lời

1

Có vẻ như vấn đề nằm trong kết nối từ máy khách đến Internet. Nếu bạn đang thực hiện cuộc gọi Ajax trong JavaScript phía máy khách, nó không quan trọng (ít nhất là khi hiệu suất hoạt động) cho dù ứng dụng web và cơ sở dữ liệu nằm trong cùng một vùng. Một kết nối rất chậm sẽ gọi một thời gian chờ.

Vì điều này là gián đoạn, tôi khuyên bạn nên bắt lỗi này trong JavaScript và cho phép nhắc khách hàng thử lưu lại.

+2

Kết nối không thành công giữa máy chủ web (ví dụ: Azure Web App) và máy chủ cơ sở dữ liệu (Azure SQL). Tôi tin rằng vấn đề của tôi là kích thước cá thể tôi đã sử dụng trong Azure SQL, đó là S0 (tôi đã thêm một bình luận @AKS ở trên). Cảm ơn bạn đã đề xuất mặc dù! Tôi nên đăng độ phân giải của mình sau khi tôi giải quyết được vấn đề của mình. – TheJesterCrown

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