2012-08-06 25 views
6

Đôi khi (không phải luôn luôn) Tôi nhận đượcServiceStack.Redis: Không thể để kết nối: Thể thao: 0

"Unable to Connect: Thể thao: 0"

lỗi khi cố gắng để có được giá trị từ Redis khi sử dụng ServiceStack .Redis. Có ai biết điều đó có nghĩa là gì không? Tôi đang sử dụng PooledRedisClientManager để có được khách hàng.

Trả lời

8

Tôi tin rằng bạn có thể khắc phục điều này bằng cách tăng số lượng hồ bơi ConnectTimeout. Tôi đã đặt nó rất thấp (10ms), do đó, khi hồ bơi được tạo ra, một số khách hàng không thể kết nối trong khoảng thời gian ngắn đó. Nếu hồ bơi trả lại một trong các máy khách này, nó sẽ ném lỗi này (cổng "0" là vì nó không được kết nối - nó không biết cổng nào không được kết nối). Sau một sự chậm trễ, tất cả các khách hàng có thể kết nối.

Tôi tăng thời gian chờ kết nối lên 500ms và sự cố đã biến mất - tất cả khách hàng đều kết nối, mặc dù một số người trong số họ chặn trong vài trăm mili giây. Nhưng đó là tốt hơn nhiều so với một lỗi.

+0

Dường như đã làm việc. Ban đầu tôi nghĩ rằng thời gian chờ kết nối là trong vài giây, do đó, không có bất ngờ thiết lập nó đến 10 đã không giúp tôi :) – Klotin

-2

Điều này có nghĩa là số cổng hoặc địa chỉ máy chủ không đúng.

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