2012-09-24 27 views
1

有事情
我在MVC 3做了一個網站,部署在Azure中WebRole
它運行良好,最初在VS2010
作出 現在我用VS2012
一個很奇怪的事情 我決定做一些細微的變化,它似乎是工作,但不斷打破在隨機時間間隔
這是發生了什麼事隨機間隔我得到這個錯誤ErrorCode<ERRCA0017>:SubStatus<ES0006>
2-3分鐘得到這個犯錯後後

或網站似乎是工作的罰款

我還沒有從以前的版本與緩存
網站的改變任何東西這個錯誤不會NT發生時,我在staginglocal environment
測試沒有地方在我的代碼即時訪問該緩存編程
我有複製粘貼整個配置,因爲它是從蔚藍的門戶網站,我知道它,它正確的,因爲這些是被前
工作相同的配置設置我只是用Azure AppFabric Caching,因爲我需要保存sessions一些地方。所以它提到的唯一的地方是在我的網站web config,正如我已經告訴所有的配置可以被認爲是正確的。

這是堆棧跟蹤,如果這能有一定的幫助Azure AppFabric緩存。錯誤代碼<ERRCA0017>:子狀態<ES0006>

[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 

更新: -
突然我發現這似乎是我一個新的錯誤作爲內部錯誤很多網站談論
之一錯誤描述

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] 


,這是新的ST ACK跟蹤

[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 
+0

我也面臨同樣的問題......完全相同的問題。你有沒有解決這個問題的方法。在升級到VS 2012後,NHibernate二級緩存(NHibernate.Caches.AppFabric)無法連接到緩存服務器。正常cacheService使用新的DataCacheFactory(),可以正常工作。它只有NHibernate第二級緩存無法通信 –

+0

@rbg - 這個錯誤通過與天青技術支持人員交談解決,他們告訴我這是一個天藍色的內部錯誤,如果我刪除並重新啓動部署我的服務,謝天謝地爲我解決了這個問題 –

回答

0

有關於這個錯誤在一年前一個有趣的博客文章:Azure AppFabric Caching - ErrorCode:SubStatus : What to do?

intializing的DataCacheFactory修改 dataCacheFactoryConfiguration實例的 DataCacheFactoryConfiguration.ChannelOpenTimeout您正在使用到2分鐘的大 值之前。 (不能使用配置來設置值,因爲 在允許的限制內20秒)。此外,此建議僅用於調試目的,並且理想情況下不應在生產 環境中需要 。這使底層可以迴應發生的實際錯誤 。現在,如果您檢查內部異常,您應該看到 導致請求失敗的原因。

請按照以下步驟找到內部異常,這將解釋爲什麼請求失敗。

注:如果這是由瞬時故障引起的,你應該考慮,以實現重試政策使用Transient Fault Handling Application Block(這也支持的AppFabric緩存)。

+0

我不能這樣做。因爲我沒有像前面提到的那樣編程地做任何事情。我只是把一些配置值在webconfig中,沒有別的 –

+0

看看下面的博客文章:http://bobthegoblin.wordpress.com/2011/09/05/working-around-windows-azure-appfabric-cache-超時大量數據/不使用web.config,而是在Web應用程序啓動時配置高速緩存。您只需要執行此操作即可更改ChannelOpenTimeout並查找真正的錯誤。一旦你掌握了內部異常,你可以簡單地切換回web.config配置。 –

+0

我已更新我的問題,我不認爲問題是大量的數據,但超時。這很奇怪,因爲我使用相同的數據中心來承載服務和緩存 –