2013-08-01 25 views
8

Tôi đang cố bắt đầu với Azure và đang cố gắng sử dụng tính năng Caching. Tôi đã tạo một dự án dịch vụ đám mây và thêm vai trò của nhân viên Cache và vai trò web. Tôi đã cài đặt "Windows Azure Caching" nuget vào các dự án cho cả hai vai trò và thêm tên của vai trò nhân viên bộ nhớ cache làm định danh trong phần tử DataCacheClients trong web.config của vai trò web.Ngoại lệ khi sử dụng Windows Azure Caching: Không có máy chủ nào được biết là

tôi đã thêm đoạn mã sau vào vai trò web:

DataCacheFactory cf = new DataCacheFactory(); 
DataCache c = cf.GetDefaultCache(); 

Khi tôi cố gắng chạy cục bộ trên giả lập, tôi nhận được ngoại lệ sau đây:

ErrorCode<ERRCA0017>:SubStatus<ES0006>:There is a temporary failure. 
    Please retry later. (One or more specified cache servers are unavailable, 
which could be caused by busy network or servers. For on-premises cache clusters, 
also verify the following conditions. Ensure that security permission has been granted 
for this client account, and check that the AppFabric Caching Service is allowed through 
the firewall on all cache hosts. Also the MaxBufferSize on the server must be greater 
than or equal to the serialized object size sent from the client.). 
Additional Information : The client was trying to communicate with the server: net.tcp://MvcWebRole1:24233. 


Inner Exception : No such host is known 

bạn có thể vui lòng cho tôi biết những gì tôi đang thiếu ở đây?

Azure SDK được sử dụng: v2.0

+0

Thật bi thảm, thời gian của câu hỏi này cũng tốt cho tôi. :-) –

Trả lời

14

Thời gian của câu hỏi của bạn không thể tốt hơn. Chúng tôi cũng phải đối mặt chính xác cùng một vấn đề và đã xem xét đầu của chúng tôi về vấn đề có thể xảy ra. Chúng tôi đã có một dự án mà mọi thứ hoạt động hoàn hảo và trong một dự án chúng tôi cũng gặp phải lỗi tương tự. Dựa trên nghiên cứu của chúng tôi, chúng tôi đã xác định được vấn đề với gói Nuget để lưu vào bộ nhớ đệm. Có vẻ như một phiên bản mới (2.1.0.0) đã được phát hành ngày hôm qua và chúng tôi thấy rằng nếu chúng tôi cài đặt gói đó, chúng tôi sẽ gặp lỗi này. Bạn có thể kiểm tra phiên bản gói trong trường hợp của bạn không? Tài liệu này nói rằng phiên bản mới này chỉ có thể được sử dụng với SDK (2.1) mới nhất được phát hành ngày hôm nay.

Một giải pháp là gỡ cài đặt phiên bản 2.1.0.0 và cài đặt phiên bản 2.0.0.0. Để cài đặt phiên bản 2.0.0.0, hãy mở Bảng điều khiển Trình quản lý Gói (View --> Other Windows --> Package Manager Console) và nhập lệnh sau đây:

Install-Package Microsoft.WindowsAzure.Caching -Version 2.0.0.0 

Điều này đã khắc phục được sự cố của chúng tôi. Hy vọng rằng nó sẽ sửa chữa của bạn quá.

+0

Và cũng có thể thời gian của câu trả lời của bạn không thể tốt hơn. Nó giải quyết vấn đề của tôi. Cảm ơn bạn. –

+0

Wow! những gì tôi có thể nói ... cảm ơn một tấn – Aadith

+0

Tôi tò mò làm thế nào bạn đã tìm ra nguyên nhân gốc rễ ... Tôi đã dành một vài giờ để có được xuống đến vấn đề nhưng vô ích ...chia sẻ kỹ thuật gỡ lỗi để xác định các vấn đề như vậy sẽ giúp ích rất nhiều – Aadith

2

Đây là liên kết đến blog Kỹ thuật tích hợp đám mây của Windows Azure về cách xử lý vấn đề tương tự này. Họ khuyên bạn nên nâng cấp lên Azure SDK phiên bản 2.1 hoặc quay lại dưới dạng trạng thái câu trả lời được chấp nhận.

http://blogs.msdn.com/b/cie/archive/2013/08/08/windows-azure-caching-2-1-0-0-no-such-host-is-known.aspx

+0

Cảm ơn. Tôi đã nghĩ: "Họ khuyên bạn nên nâng cấp lên Azure SDK phiên bản 2.1 hoặc quay trở lại làm trạng thái câu trả lời được chấp nhận". –

+0

câu trả lời là hữu ích, cảm ơn bạn matt. –

1

ngoại lệ này cũng có thể xảy ra trong tính toán giả lập nếu vì vai trò trong cấu hình thư viện khách hàng không có bộ nhớ cache cấu hình. Trong trường hợp của tôi, điều này đã xảy ra với mục đích, vì bộ mô phỏng bộ nhớ cache có một số vấn đề có thể làm chậm quá trình kiểm tra và gỡ lỗi trên dịch vụ.

Trong phiên bản trước của Windows Azure Caching, trong trường hợp này, việc xây dựng DataCacheFactory sẽ không thành công với một ngoại lệ (được xử lý bởi mã của tôi); với Windows Azure Caching 2.1 (và Azure SDK 2.1) trong cùng một kịch bản mã sẽ xem xét tên vai trò là địa chỉ máy chủ và do đó, việc xây dựng DataCache sẽ cố gắng liên lạc với bộ nhớ cache không tồn tại - điều này dẫn đến 3 phút chờ đợi và ngoại lệ được báo cáo trong câu hỏi.

Tôi đã thay đổi mã của mình để phát hiện tình huống mới cho trường hợp này - bạn có thể tìm thêm chi tiết trong this SO question.

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