2016-08-27 56 views
7

Tôi đã tạo một trang web nội bộ cho công ty của chúng tôi. Nó chạy trơn tru trong vài tháng và sau đó tôi thực hiện một cập nhật lớn do gợi ý của người dùng. Khi tôi chạy trực tiếp, nó chạy bình thường. Sau đó đột nhiên một trong những người dùng của tôi từ Nhật Bản gửi cho tôi một "hoạt động chờ đợi đã hết thời gian chờ." lỗi. Khi tôi kiểm tra truy cập một liên kết nào đó, nó chạy bình thường đối với tôi và một số người khác mà tôi yêu cầu kiểm tra xem họ có truy cập trang đó hay không. Tôi đã cập nhật tệp thực thi httpRuntime executionTimeout nhưng vẫn không có may mắn. Có phải lỗi đến từ kết nối cơ sở dữ liệu không? Nếu tôi tăng thời gian chờ trong kết nối cơ sở dữ liệu, nó sẽ khắc phục được sự cố?Hoạt động chờ đợi đã hết thời gian chờ. ASP

Trả lời

7

Nếu bạn phát hiện lỗi chính xác "Thời gian chờ hoạt động đã hết" thì có khả năng bạn có cuộc gọi cơ sở dữ liệu mất nhiều thời gian hơn dự kiến. Điều này có thể do bất kỳ số điều:

  1. mạng thoáng vấn đề
  2. SQL cao tải máy chủ Vấn đề
  3. với SAN, RAID, hoặc thiết bị lưu trữ
  4. Deadlock hoặc hình thức khác của tranh đa tiến

Bạn chưa chia sẻ đủ thông tin để khắc phục sự cố. Cách tôi sẽ quản lý việc này sẽ là kiểm tra các sự cố khác của sự cố và xem có mẫu không, ví dụ: nếu vấn đề xảy ra tại một thời điểm nhất định trong ngày.

Chắc chắn tăng thời gian chờ không phải là một ý tưởng tồi (nếu nó hiện được đặt khá thấp) và có thể giải quyết vấn đề trong và của chính nó.

9

Hãy nhớ để tăng thời gian chờ kết nối và thời gian chờ lệnh:

SqlConnection(@"Data Source=SQLSERVER;Initial Catalog=MYCATALOG;Integrated Security=True;Connection Timeout=1000");//huge timeout 

và sau đó:

com.CommandTimeout = 950;//or whatever 
+1

là nó bắt buộc nếu tôi tăng thời gian chờ kết nối trong SqlConnection cũng cần phải tăng CommandTimeout? – Vic

+1

Không, nó sẽ không ném một thông báo lỗi, nhưng một trong những không làm tốt nhiều mà không có khác. Nếu thời gian chờ kết nối của bạn được đặt ở mức 30, bạn không nên tăng thời gian chờ của lệnh lên 60 hoặc ngược lại. Toàn bộ cô-bang sẽ hủy bỏ và hết thời gian chờ khi đạt đến số thấp hơn của hai con số. –

+2

Ít nhất trong Sql Server, thời gian chờ kết nối là mất bao lâu để thiết lập kết nối. Nó không liên quan gì đến tuổi thọ của kết nối. Thời gian chờ của lệnh phải thực hiện với thời gian thực thi lệnh. – Brian

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