是什么导致SignalR FormatException无效的游标?

时间:2013-06-20 20:51:57

标签: asp.net-mvc signalr signalr-hub signalr.client

我写了一个简单的SignalR集线器:

public void PostUpdate(string message)
    {
        try
        {
            var update = URS.Tools.JsonSerializer.DeserializeFromJson<DataUpdate>(message);
            switch (update.UpdateType)
            {
                case DataUpdateType.Opportunity:
                    Clients.All.UpdateOpportunity(update.DataUpdateId);
                    break;
                case DataUpdateType.Contact:
                    Clients.All.UpdateContact(update.DataUpdateId);
                    break;
                case DataUpdateType.Client:
                    Clients.All.UpdateClient(update.DataUpdateId);
                    break;
            }
        }
        catch (Exception exception)
        {
            Logger.LogError(exception);
        }
    }

它正在运行Silverlight 5客户端。在大多数情况下它是有效的,但是在5到30分钟后,我收到了来自图书馆的错误:

Exception information: 
Exception type: FormatException 
Exception message: Invalid cursor.
at Microsoft.AspNet.SignalR.Messaging.Cursor.GetCursors(String cursor, Func`2 keyMaximizer)
at Microsoft.AspNet.SignalR.Messaging.DefaultSubscription..ctor(String identity, IEnumerable`1 eventKeys, TopicLookup topics, String cursor, Func`2 callback, Int32 maxMessages, IStringMinifier stringMinifier, IPerformanceCounterManager counters)
at Microsoft.AspNet.SignalR.Messaging.MessageBus.CreateSubscription(ISubscriber subscriber, String cursor, Func`2 callback, Int32 messageBufferSize)
at Microsoft.AspNet.SignalR.Messaging.MessageBus.Subscribe(ISubscriber subscriber, String cursor, Func`2 callback, Int32 maxMessages)
at Microsoft.AspNet.SignalR.Infrastructure.Connection.Receive(String messageId, Func`2 callback, Int32 maxMessages)
at Microsoft.AspNet.SignalR.Transports.ForeverTransport.ProcessMessages(ITransportConnection connection, Func`1 postReceive, Action`1 endRequest)

当我查看数据包时,我看不到成功错误之前的那个和失败的调用之间的区别。它正在运行serverEvents传输,但我尝试使用longPolling无济于事。

服务器中发生异常。

任何想法可能导致上述错误和/或如何解决它?

0 个答案:

没有答案