0

worker ロール インスタンス間でキャッシュを設定しようとしています。これを行うために、Azure プロジェクトに新しいキャッシュ ワーカー ロールを追加しました。ただし、次のコードでデフォルトのキャッシュにアクセスしようとすると:

_dataCacheFactory = new DataCacheFactory();
var cache = _dataCacheFactory.GetDefaultCache();

デフォルトのキャッシュが返されず、呼び出しがタイムアウトします。Azure ドキュメントから app.config ファイルをコピーし、識別子タグにロール名を追加しました。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    <section name="cacheDiagnostics" type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" allowLocation="true" allowDefinition="Everywhere" />
  </configSections>

  <dataCacheClients>
    <dataCacheClient name="default">
      <autoDiscover isEnabled="true" identifier="Cache" />
      <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
    </dataCacheClient>
  </dataCacheClients>

  <cacheDiagnostics>
    <crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" />
  </cacheDiagnostics>
</configuration>

キャッシュ ワーカー ロールの名前が実際に「キャッシュ」であることを再確認しました。キャッシュ ワーカー ロールと通常のワーカー ロールの両方で、構成タブの [キャッシュ] タブで次のように設定しました。

  • キャッシュを有効にする
  • 「専用ロール」に設定されたキャッシュクラスター設定
  • ストレージ アカウントの資格情報: UseDevelopmentStorage=true

現在、これを Azure Compute Emulator で実行しています。ワーカー ロールとキャッシュ ワーカー ロールの両方が稼働中であることがわかります。不足している、または正しく設定されていない構成設定はありますか? ありがとう!

4

1 に答える 1

0

こんにちは、インター ロール コミュニケーションを使用してそれらの間の接続を設定してみることをお勧めします。次のスタック オーバーフロー Web サイトでロール間通信を行う方法の答えを見つけることができます: Azure とのロール間通信を行うには?

次のリンクで詳細を確認することもできます。

これが問題の解決に役立つことを願っています。他に何か必要な場合はお知らせください。

于 2013-08-06T07:07:35.383 に答える