2008-10-23 33 views
61

Làm thế nào để thời gian chờ hoạt động trong WCF? Ví dụ: tôi biết rằng bạn có thể định cấu hình sendTimeoutreceiveTimeout cho khách hàng ràng buộc. Nhưng họ làm việc bằng cách nào?Timeouts WCF Services

MSDN mô tả sendTimeout như:

Một giá trị TimeSpan mà xác định khoảng thời gian quy định một hoạt động gửi để hoàn thành. Giá trị này phải lớn hơn hoặc bằng đến Zero. Mặc định là 00:01:00.

Hoạt động gửi/nhận gửi là gì?

Trả lời

61

Khách hàng bên:

  • SendTimeout được sử dụng để khởi tạo OperationTimeout, mà điều chỉnh toàn bộ tương tác cho việc gửi một tin nhắn (bao gồm nhận một tin nhắn trả lời trong một trường hợp request-reply). Thời gian chờ này cũng áp dụng khi gửi tin nhắn trả lời từ phương thức CallbackContract.
  • OpenTimeout và CloseTimeout được sử dụng khi mở và đóng kênh (khi không có giá trị thời gian chờ rõ ràng nào được thông qua).
  • ReceiveTimeout không được sử dụng.

Server side:

  • Gửi, Open, và Đóng Timeout giống như trên máy khách (đối với Callback).
  • ReceiveTimeout được lớp ServiceFramework sử dụng để khởi tạo thời gian chờ phiên-idle.

Nguồn là Brian McNamara on MSDN forums.

+0

Liên kết này đã chết, bất kỳ ai cũng có thể cập nhật nó không? – BrettRobi

+5

Liên kết hoạt động với tôi – Brian

+0

Nếu tôi đặt OperationTimeout thành giá trị rất cao, và sendTimeout đến một giá trị nhỏ vô lý, mà về bản chất sẽ hết thời gian chờ, tôi không bao giờ có ngoại lệ hết thời gian chờ. Bất cứ ai có thể cho tôi biết làm thế nào tôi có thể thiết lập một ví dụ như để kích hoạt các ngoại lệ sendTimeout? –

9

Xem "Timeouts trong WCF và các giá trị mặc định của họ" http://blogs.msdn.com/b/hongmeig/archive/2010/03/06/timeouts-in-wcf-and-their-default-values.aspx

Timeouts trên ràng buộc-SendTimeout, ReceiveTimeout, OpenTimeout và CloseTimeout. Chúng có thể được đặt dễ dàng thông qua cấu hình hoặc mã số trên Binding. Giá trị mặc định cho các giá trị này là 1 phút.

ServiceHost có OpenTimeout và CloseTimeout. Mặc định cho OpenTimeout là 1 phút và mặc định cho CloseTimeout là 10 giây.

Hết thời gian chờ trên kênh phía khách hàng. Có một OperationTimeout, trong đó bạn có thể đặt nó bằng cách truyền kênh sang IContextChannel. Mặc định cho điều này cũng là 1 phút. Ttimeout trên tcp transport, được gọi là ChannelInitializationTimeout và giá trị mặc định của nó là 5 giây.

ASPNET.Có thời gian chờ tắt máy, giống như máy chủ dịch vụ đóng thời gian chờ là , mặc định là 90 giây. ExecutionTimeout, giống như thời gian chờ hoạt động , mặc định là 110 giây.

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