2

だから、今日私は

  1. Azure SDK 2.1 をインストールし、
  2. 単一の WorkerRole で新しいプロジェクトを作成し、
  3. NuGet を使用して Caching パッケージを取得し、
  4. ロールのキャッシュを「コロケーテッド」に設定します
  5. app.config でホストを「WorkerRole1」に設定します
  6. これは単なるテストであるため、セキュリティセクションにコメントしました
  7. 「実行」に次の行を挿入 `DataCache c = new DataCacheFactory().GetDefaultCache();
  8. ヒットデバッグ

上記の行を実行しようとすると、次のエラーが発生しました。

一時的な障害があります。後で再試行してください。(指定された 1 つ以上のキャッシュ サーバーが使用できません。これは、ネットワークまたはサーバーのビジー状態が原因である可能性があります。オンプレミスのキャッシュ クラスターの場合は、次の条件も確認してください。このクライアント アカウントにセキュリティ アクセス許可が付与されていることを確認し、AppFabric Caching Service は、すべてのキャッシュ ホストでファイアウォールを介して許可されます。また、サーバーの MaxBufferSize は、クライアントから送信されたシリアル化されたオブジェクトのサイズ以上である必要があります。)

私はたくさん(約5時間)見回しましたが、これについての説明は見つかりませんでした...誰か助けてくれますか?

4

4 に答える 4

3

古いバージョンの SDK (バージョン 1.8 および 2.0) をインストールしましたが、現在は機能しています... 図を見てください...

于 2013-08-30T20:51:00.940 に答える
1

同じエラーが発生しました。問題は、NuGet からキャッシュ パッケージをインストールしたことです (次の手順に従ってください: http://www.windowsazure.com/en-us/documentation/articles/cache )。 -dotnet-how-to-use-in-role/#NuGet ) を使用すると、既定で最新バージョンがインストールされ、私のプロジェクトが古いバージョンの Azure (2.1) にあるという事実が無視されます。その結果、キャッシュ パッケージの一部のコンポーネントは、プロジェクトで参照されている Diagnostics アセンブリよりも新しいバージョンである Microsoft.WindowsAzure.Diagnostics, Version=2.2.0.0 を参照していました。

パッケージ マネージャー コンソールで次のコマンドを実行して、Azure Cache パッケージ (v 2.2) をアンインストールし、一致するバージョン (v 2.1) を手動でインストールして修正しました。

PM> Install-Package Microsoft.WindowsAzure.Caching -Version 2.1
于 2014-03-08T14:43:32.717 に答える
1

私の場合、指定されたロールからキャッシュを無効にし、コンピューティング エミュレーターでホストされたサービスを実行すると、(Azure SDK 2.1 および Windows Azure Caching 2.1 で) 同じ例外が発生しました (キャッシュのみに基づいてキャッシュを無効にするには、この動作が必要です)。csdef構成、追加設定なし)。

以前のバージョンの Azure Caching では、このシナリオによりDataCacheFactoryコンストラクターで例外が発生していましたが、今ではこの例外はなくなりましたが、DataCacheコンストラクター呼び出しでロールが 3 分間ハングし、説明した例外が発生しました。

キャッシュが無効になっているかどうかを検出するコードを変更することで、この問題を解決しました。詳細については、この SO questionを参照してください。

于 2013-10-07T18:04:46.350 に答える