AppFabricキャッシュクラスターサーバーがあり、開発マシンをクライアントとして使用して作業できます。キャッシュクラスターサーバーにアクセスするさまざまなWebサーバーをシミュレートするために、VMWare仮想マシンを作成し、VisualStudio2010とWebアプリケーションをインストールしました。クライアントとしてのVMから、キャッシュを取得しようとすると、次のエラーが発生します...助けてください..ありがとう..
ErrorCode:SubStatus:一時的な障害があります。後で再試行してください。(1つ以上の指定されたキャッシュサーバーが使用できません。これは、ネットワークまたはサーバーがビジーであることが原因である可能性があります。オンプレミスキャッシュクラスターの場合は、次の条件も確認してください。このクライアントアカウントにセキュリティアクセス許可が付与されていることを確認し、AppFabricを確認してください。キャッシングサービスは、すべてのキャッシュホストのファイアウォールを通過できます。また、サーバーのMaxBufferSizeは、クライアントから送信されたシリアル化されたオブジェクトサイズ以上である必要があります。)
内部の例外が
サーバーはクライアントの資格情報を拒否しました。
だから..いくつかの調査の後..私は私の設定に次の行を追加しました
<securityProperties mode="None" protectionLevel="None" />
これで、dataCacheClientの構成は次のようになります。
<dataCacheClients>
<dataCacheClient name="default">
<localCache
isEnabled="true"
sync="NotificationBased"
objectCount="10000"
ttlValue="5" />
<hosts>
<host name="MyCacheClusterServerMachine" cachePort="22233" />
</hosts>
<securityProperties mode="None" protectionLevel="None" />
</dataCacheClient>
上記の設定変更後..次のエラーが発生します:
ソケット接続が中止されました。これは、メッセージの処理エラー、リモートホストによる受信タイムアウトの超過、または根本的なネットワークリソースの問題が原因である可能性があります。ローカルソケットのタイムアウトは
設定なしの私のコードは次のとおりです。クライアントとしての開発マシンからは機能しますが、クライアントとしてのVMからは機能しません。VMクライアントからキャッシュクラスターサーバーにpingを実行できます。
class Program
{
static void Main(string[] args)
{
var config = new DataCacheFactoryConfiguration();
var servers = new List<DataCacheServerEndpoint>();
servers.Add(new DataCacheServerEndpoint("MyCacheClusterServerMachine", 22233));
config.Servers = servers;
var factory = new DataCacheFactory(config);
var cache = factory.GetDefaultCache(); <---- error here ********
var key = "CachedObjectKey";
var obj = cache[key];
if (obj == null)
{
obj = "here is a string to cache";
cache.Add(key, obj);
Console.WriteLine("object was not in cache");
}
obj = cache.Get(key);
Console.WriteLine(obj.ToString());
Console.ReadLine();
}
}