1

非常に奇妙なことが起こって
います。MVC 3 で作成された Web サイトが Azure WebRole
にデプロイされています。これは正常に動作していて、元々は VS2010 で作成されていましたが、
現在は VS2012 を使用しています。
いくつかのマイナーな変更を加えることにしましたが、動作しているように見えましたが、ランダムな間隔で故障し続ける これはランダム な間隔の後に
起こっていることですこのエラーが発生 してから2〜3分後にこのエラーが発生します サイトは正常に機能しているように見えますこのエラー のキャッシュに関連するサイトの以前のバージョンから何も変更して いませんnt は 、プログラムでこのキャッシュにアクセスしているコード内またはコード内のどこでもテストすると発生しません

ErrorCode<ERRCA0017>:SubStatus<ES0006>



staginglocal environment

私はAzureポータルから構成全体をコピーして貼り付けましたが、どこかに保存する必要があるため、
使用する前に機能していたのと同じ構成設定であるため、正しいことを知っています。したがって、これまでに言及された唯一の場所は私のWebサイトであり、すべての構成が正しいと想定できると述べたように. これが役立つ場合のスタックトレースですAzure AppFabric Cachingsessionsweb config

[DataCacheException: 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.)]
   Microsoft.ApplicationServer.Caching.DataCache.ThrowException(ResponseBody respBody) +616
   Microsoft.ApplicationServer.Caching.DataCache.ExecuteAPI(RequestBody reqMsg, IMonitoringListener listener) +29
   Microsoft.ApplicationServer.Caching.DataCache.InternalGetAndLock(String key, TimeSpan timeout, DataCacheLockHandle& lockHandle, String region, Boolean lockKey, IMonitoringListener listener) +227
   Microsoft.ApplicationServer.Caching.<>c__DisplayClass78.<GetAndLock>b__77() +103
   Microsoft.ApplicationServer.Caching.DataCache.GetAndLock(String key, TimeSpan timeout, DataCacheLockHandle& lockHandle) +258
   Microsoft.Web.DistributedCache.<>c__DisplayClass31`1.<PerformCacheOperation>b__30() +19
   Microsoft.Web.DistributedCache.DataCacheRetryWrapper.PerformCacheOperation(Action action) +208
   Microsoft.Web.DistributedCache.DataCacheForwarderBase.GetAndLock(String key, TimeSpan timeout, DataCacheLockHandle& lockHandle) +190
   Microsoft.Web.DistributedCache.BlobBasedSessionStoreProvider.GetItem(HttpContextBase context, String id, Boolean acquireWriteLock, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actions) +593
   Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider.GetItemExclusive(HttpContext context, String id, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actions) +125
   System.Web.SessionState.SessionStateModule.GetSessionStateItem() +178
   System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData) +1076
   System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +115
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375

更新:-突然、多くのサイトが エラーの説明について
話している内部エラーの1つと思われる新しいエラーを発見しました

A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond [IP-Address]:[PORT]


これが新しいスタックトレースです

[SocketException (0x274c): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond [IP-ADDRESS]:[PORT]]
   System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) +305
   System.Net.Sockets.Socket.Connect(EndPoint remoteEP) +162
   System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri uri, TimeSpan timeout) +774

[EndpointNotFoundException: Could not connect to [SOCKET-ENDPOINT]. The connection attempt lasted for a time span of 00:00:21.0308462. TCP error code 10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 111.221.89.111:22233. ]
   System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase) +518
   System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData) +401
   Microsoft.ApplicationServer.Caching.OpenDelegate.EndInvoke(IAsyncResult result) +0
   Microsoft.ApplicationServer.Caching.ChannelContainer.Opened(IAsyncResult ar) +122
4

1 に答える 1

0

1年以上前に、このエラーに関する興味深いブログ投稿がありました。AzureAppFabric Caching-ErrorCode:SubStatus:どうすればよいですか?

DataCacheFactoryを初期化する前に、使用しているdataCacheFactoryConfigurationインスタンスのDataCacheFactoryConfiguration.ChannelOpenTimeoutを2分の大きな値に変更します。(許可された制限が20秒であるため、構成を使用して値を設定することはできません)。また、この推奨事項はデバッグのみを目的としており、理想的には実稼働環境では必要ありません。これにより、基礎となるレイヤーが実際に発生したエラーで応答できるようになります。ここで、内部例外を確認すると、リクエストが失敗した原因がわかります。

次の手順に従って、リクエストが失敗する理由を説明する内部例外を見つけてください。

注:これが一時的な障害が原因である場合は、再試行ポリシーを実装するために、一時的な障害処理アプリケーションブロック(AppFabricキャッシュもサポート)の使用を検討する必要があります。

于 2012-09-24T11:51:59.950 に答える