У меня есть проект SignalR, который работал без проблем в моих средах разработки, но как только он был перенесен в производство, почти каждый вызов завершился с ошибкой
ConnectionId находится в неправильном формате.
Я видел несколько других элементов в StackOverflow о том же сообщении об ошибке, но ни одно из них не помогло.
Я использую SignalR 2.0.2 и SignalR Scaleout с SQL Server, эффективно балансировщик нагрузки.
Код события: 3005 Сообщение о событии: произошло необработанное исключение. Время события: 2/11/2014 9:11:27 PM Время мероприятия (UTC): 2/12/2014 3:11:27 AM Идентификатор события: cff1fd93fa6d4b83b1848078a905371c Последовательность событий: 73 Событие: 10 Код события: 0 Информация о приложении:
Application domain: /LM/W3SVC/2/ROOT-3-130366479327251392 Trust level: Full Application Virtual Path: / Application Path: C:\inetpub\wwwroot\<remvoved> Machine name: BSDUSHC1WW09 Process information: Process ID: 7088 Process name: w3wp.exe Account name: <remvoved> Exception information: Exception type: InvalidOperationException Exception message: The ConnectionId is in the incorrect format. at
Microsoft.AspNet.SignalR.PersistentConnection.GetConnectionId(HostContext context, String connectionToken) at Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(HostContext контекста) в Microsoft.AspNet.SignalR.Hubs.HubDispatcher.ProcessRequest(HostContext контекста) в Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(IDictionary`2 окружающей среды) при Microsoft.Owin.Mapping.MapMiddleware.d__0.MoveNext() --- Конец трассировки стека из предыдущего места, где было выбрано исключение - на System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork(IAsyncResult крыса System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() на System.Web.HttpApplication.ExecuteStep(шаг IExecutionStep, Логическое & completedSynchronously)
Запросить информацию: URL запроса: HTTP:///signalr/подключить транспорт = serverSentEvents & connectionToken = GZlhDBCjkD1/bL1rc4Rlq2PVKYRs0B9nN7b71cU/E6x7sCsFvR1DqM/rBnDhg + URwkYyBlGmrczV59XIn/goyt9x0xXOd8Gs3Qswo1oXqSttH2QPO548C0fbdBvvlUupzS4S0Rl + aShoQwnj + qFDpA == & connectionData = [{ "Имя": ""}]
Request path: /signalr/connect User host address: 10.240.14.26 User: <remvoved> Is authenticated: True Authentication Type: Negotiate Thread account name: <remvoved> Thread information: Thread ID: 23 Thread account name: <remvoved> Is impersonating: False Stack trace: at Microsoft.AspNet.SignalR.PersistentConnection.GetConnectionId(HostContext
контекст, String connectionToken) в Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(HostContext контекста) в Microsoft.AspNet.SignalR.Hubs.HubDispatcher.ProcessRequest(HostContext контекста) в Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(IDictionary`2 окружающей среды) при Microsoft.Owin.Mapping.MapMiddleware.d__0.MoveNext() --- Конец трассировки стека из предыдущего места, где было выбрано исключение - на System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork(IAsyncResult крыса System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() на System.Web.HttpApplication.ExecuteStep(шаг IExecutionStep, Логическое & completedSynchronously)