2013-08-01 3 views
8

私はAzureを使い始めようとしており、キャッシュ機能を使用しようとしています。クラウドサービスプロジェクトを作成し、キャッシュワーカーロールとウェブロールを追加しました。両方のロールのプロジェクトに「Windows Azure Caching」ナゲットをインストールし、Webロールのweb.configのDataCacheClients要素にキャッシュワーカーロールの名前を識別子として追加しました。Windows Azureを使用している間の例外キャッシュ:そのようなホストは知られていません

私は、Webの役割に次のコードを追加しました:私はエミュレータ上でローカルにこれを実行しようとすると

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

は、私は次の例外を取得:

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 

あなたは私を教えてくださいすることができここで私は何が欠けているのですか?

Azure SDK used:v2.0

+0

悲劇的に、この質問のタイミングは私にとっても良いことです。 :-) –

答えて

14

あなたの質問のタイミングは良くありませんでした。私たちはまったく同じ問題に直面し、問題の可能性について私たちの頭を悩ましていました。私たちは、すべてが完璧に機能し、同じエラーが発生していた1つのプロジェクトを持っていました。私たちの研究に基づいて、キャッシングのためのNugetパッケージの問題を特定しました。昨日、新しいバージョン(2.1.0.0)がリリースされたようです。そのパッケージをインストールすると、このエラーが発生することが判明しました。あなたのケースでパッケージのバージョンを確認できますか?ドキュメントには、この新しいバージョンは、今日リリースされた最新のSDK(2.1)でのみ使用できることが記載されています。

解決策の1つは、バージョン2.1.0.0をアンインストールし、バージョン2.0.0.0をインストールすることです。バージョン2.0.0.0をインストールし、オープンなパッケージマネージャコンソール(View --> Other Windows --> Package Manager Console)とそこに次のコマンドを入力するには:

Install-Package Microsoft.WindowsAzure.Caching -Version 2.0.0.0 

これが私たちの問題を修正しました。うまくいけば、あなたもそれを修正するはずです。

+0

また、あなたの答えのタイミングは良くないかもしれません。それは私の問題を解決しました。ありがとうございました。 –

+0

うわー!私は何を言うことができます...ありがとうトン – Aadith

+0

私はあなたが根本的な原因をどのように理解したのか不思議です...私は問題に立ち向かうのに数時間を費やしましたが、役に立たない...そのような問題を特定するためのデバッグ技術を共有することは大きな助けになるでしょう – Aadith

2

この同じ問題を処理する方法については、Windows Azure Cloud Integrationエンジニアリングのブログへのリンクがあります。 Azure SDK v 2.1にアップグレードするか、受け入れられた回答状態としてロールバックすることをお勧めします。

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

+0

ありがとうございます。私は思った: "彼らは、Azure SDK v 2.1にアップグレードするか、受け入れられた回答状態としてロールバックすることをお勧めします。 –

+0

答えが便利です、マットありがとうございます。 –

1

クライアントライブラリ構成での役割のために何もキャッシュに構成が存在しない場合は、この例外はまた、計算エミュレータの下で発生する可能性があります。私のケースでは、キャッシュエミュレータにはサービスのテストとデバッグを遅らせるいくつかの問題があるため、これは意図的に起こりました。

Windows Azureキャッシュの以前のバージョンでは、このシナリオではDataCacheFactoryの構築が例外(私のコードで処理されます)で失敗しました。この同じシナリオでWindows Azure Caching 2.1(およびAzure SDK 2.1)を使用すると、コードは役割名をサーバーアドレスとみなし、したがってDataCacheの構築では既存のキャッシュと通信しようとしません。この質問では例外が報告されています。

このシナリオの新しい状況を検出するためにコードを変更しました。詳細はthis SO questionで確認できます。

関連する問題