0

Windows7ボックスにWindowsServerAppFabric 1.1をインストールしたばかりで、AppFabricの評価の一環として、キャッシュクライアントAPIに対してコンソールアプリケーションでコードを記述しようとしています。私のapp.configは次のようになります。

  <configSections>
    <section name="dataCacheClient"     type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,     Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral,     PublicKeyToken=31bf3856ad364e35" allowLocation="true" allowDefinition="Everywhere" />
  </configSections>
  <dataCacheClient>
  <hosts>
    <host name="pa-chouse2" cachePort="22233" />
  </hosts>
</dataCacheClient>

PowershellコマンドレットGrant-CacheAllowedClientAccountを使用して、新しいキャッシュを作成し、ドメインユーザーアカウントを許可されたクライアントアカウントとして追加しました。次のような新しいDataCacheインスタンスを作成しています。

using (DataCacheFactory cacheFactory = new DataCacheFactory())
{
  this.cache = cacheFactory.GetDefaultCache();
}    

DataCache.Getを呼び出すと、次の例外が発生します。

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.)

これを機能させるために私が欠けているものを誰かが指摘できれば、私は非常に感謝しています。

4

1 に答える 1

0

私が残した小さな髪をほとんど取り除いた後、最終的に私の問題が何であるかを理解しました。最初は、次のようにDataCacheを作成していました。

using (DataCacheFactory cacheFactory = new DataCacheFactory())
{
  this.cache = cacheFactory.GetDefaultCache();
}

DataCacheは、DataCacheFactoryが作成したものを破棄することを好まなかったことがわかりました。DataCacheが必要な限りDataCacheFactoryがスコープ内にとどまるようにコードをリファクタリングすると、期待どおりに機能しました。

于 2012-11-01T15:15:14.847 に答える