0

現在、WCF アプリケーションで Azure キャッシュを使用していますが、データをキャッシュに入れるときに次の例外が発生しました。

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

内部例外は次のとおりです。

System.ServiceModel.CommunicationException: ソケット接続が中止されました。これは、メッセージの処理中にエラーが発生したか、リモート ホストが受信タイムアウトを超過したか、基になるネットワーク リソースの問題が原因である可能性があります。ローカル ソケットのタイムアウトは「00:00:30」でした。---> System.Net.Sockets.SocketException: System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) で、既存の接続がリモート ホストによって強制的に閉じられました。 ServiceModel.Channels.SocketConnection.Write(Byte[] buffer, Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout) --- 内部例外スタック トレースの終了 --- at System.ServiceModel.Channels.SocketConnection.Write(Byte[ ] バッファー、Int32 オフセット、Int32 サイズ、Boolean 即時、TimeSpan タイムアウト) System.ServiceModel.Channels で。Microsoft.ApplicationServer.Caching.MonitoringListenerFactory.EmptyListener.Microsoft.ApplicationServer.Caching.IMonitoringListener.Listen[TResult](Func`1 innerDelegate) のDisplayClass19.b _18() Microsoft.ApplicationServer.Caching.DataCache.Put(String key, Object) の価値)

問題は、このメッセージが非常に一般的であり、詳細があまり示されていないことです

私はすでに dataCacheClient の requestTimeout を 2 分に増やそうとしました。これは問題を解決しないため、キャッシュへの接続がタイムアウトしたため、問題は解決しないはずです

実稼働サーバー上の同じ量のデータには問題がないため、データ量が大きすぎるためではないこともわかっています(これはテストサーバーで発生します)。ローカル コンピューターからテスト データベースに接続しましたが、問題はありません

誰でもこの問題を解決する方法を知っていますか? ありがとう

以下は、Azure キャッシュの現在の構成です

<dataCacheClient name="default" requestTimeout="30000" isCompressionEnabled="true" >
  <localCache isEnabled="true" sync="TimeoutBased" objectCount="4194304" ttlValue="80000" />
</dataCacheClient>
4

1 に答える 1

0

ソケットのタイムアウトを回避するには、コードでReceiveTimeout プロパティを 40 ~ 50 秒に設定してください。

エラーが示唆する場合に操作を再試行するための再試行ロジックをコードに含めます。

また、この問題が長期間にわたって続く場合は、キャッシュ インスタンスのパフォーマンス カウンターを調べて、100% の制限に近づいているか、何らかの意味で容量を使い果たしているかどうかを確認します。この場合、容量を再評価する必要があります。容量計画に関する考慮事項を参照してください。インロール キャッシュ (Windows Azure キャッシュ)

于 2013-10-15T12:55:49.090 に答える