我們使用Redis的Redis的和Siglnar偶爾掛起SocketFailure:2400年2月8日和SignalR 2.2.0上EVAL
我們可以在日誌中,我們偶爾也會掛起看到。
StackExchange.Redis.RedisConnectionException: SocketFailure on EVAL
at Microsoft.AspNet.SignalR.Messaging.ScaleoutStream.Send(Func`2 send, Object state)
at Microsoft.AspNet.SignalR.Infrastructure.Connection.Send(ConnectionMessage message)
at Microsoft.AspNet.SignalR.Hubs.HubDispatcher.Outgoing(IHubOutgoingInvokerContext context)
at Microsoft.AspNet.SignalR.Hubs.HubPipelineModule.<>c__DisplayClass1b.<BuildOutgoing>b__19(IHubOutgoingInvokerContext context)
at Microsoft.AspNet.SignalR.Hubs.SignalProxy.TryInvokeMember(InvokeMemberBinder binder, Object[] args, Object& result)
at CallSite.Target(Closure , CallSite , Object , List`1)
at SR.BusPortal.WebApi.Hubs.SearchHub.<>c__DisplayClass8_0.<SearchInternal>b__0(List`1 x) in D:\Continua\Agent\Ws\37347\Source\WEB\src\SR.BusPortal.WebApi\SR.BusPortal.WebApi\Hubs\SearchHub.cs:line 141
at SR.BusPortal.Providers.Faciliators.SearchExecutioner.PrepareResultsAsync(IEnumerable`1 connections, Boolean deliverVerifications, Func`2 callback) in D:\Continua\Agent\Ws\37347\Source\WEB\src\SR.BusPortal.WebApi\SR.BusPortal.Providers\Faciliators\SearchExecutioner.cs:line 120
at SR.BusPortal.Providers.Faciliators.SearchExecutioner.<>c__DisplayClass32_0.<SearchAsync>b__0(List`1 x) in D:\Continua\Agent\Ws\37347\Source\WEB\src\SR.BusPortal.WebApi\SR.BusPortal.Providers\Faciliators\SearchExecutioner.cs:line 216
StackExchange.Redis.RedisConnectionException: SocketFailure on EVAL
at Microsoft.AspNet.SignalR.Messaging.ScaleoutStream.Send(Func`2 send, Object state)
at Microsoft.AspNet.SignalR.Infrastructure.Connection.Send(ConnectionMessage message)
我可以減少它主要是在這個代碼特定行失敗:
Clients.Caller.SearchResults(connectionModels);
這是primarly的數據返回給客戶端。
現在我正在考慮如果在這種情況下捕捉到特定的異常並再試一次,這將是一個可能的想法。但我不確定這可能會導致客戶端的結果重複嗎?
對錯誤本身或關於重試想法的任何建議?
更新解決了它嗎?你使用任何羣集/定位功能? –
我們也在考慮這個問題,但是第一個版本中我們遇到了一個非常糟糕的問題,那就是爲什麼我害怕它; ) –
是的,它解決了這個問題,我們使用redis集羣功能 –