SignalR: никаких сообщений, пока файл не будет загружен/загружен на тот же веб-сайт

У меня возникла проблема при загрузке или загрузке файла (WebClient.DownloadFileAsync|UploadFileAsync или с помощью HttpWebRequest) и одновременном вызове методов SignalR-hub:

Вызовы SignalR были остановлены до завершения загрузки файла. Похоже на то: все вызовы signalr ставятся в очередь. Все вызовы в очереди выполняются далее (после загрузки файла).

Мой фрагмент кода:

hubProxy.Invoke("TraceDocumentUploadingRequest", callerId, fileName, "File loading started ", 0);

DownloadFileByKey(fileKey, (progressPercentage, bytesSent) => { hubProxy.Invoke("TraceDocumentUploadingRequest", callerId, fileName, "File loading in progress", progressPercentage); });

hubProxy.Invoke("TraceDocumentUploadingRequest", callerId, fileName, "File loading finished", 100);

Второй вызов метода хаба «TraceDocumentUploadingRequest» (в обработчике загрузки файла) будет выполнен на хабе после завершения загрузки файла.

Обработчик загрузки файла выполняется как в текущем потоке, так и в другом (связанном с реализацией метода DownloadFileByKey) - результат один и тот же.

Как я могу избежать этого поведения и вызвать вызовы хаб-метода в нужное время?


person Dmitry    schedule 02.10.2013    source источник
comment
Какую версию SignalR вы используете?   -  person davidfowl    schedule 02.10.2013
comment
Все компоненты версии 1.1.3   -  person Dmitry    schedule 03.10.2013
comment
Это то, что мы исправили в более поздних версиях SignalR. В качестве обходного пути вы можете попробовать увеличить количество одновременных подключений в диспетчере точек обслуживания примерно до 100: ServicePointManager.DefaultConnectionLimit = 100; msdn.microsoft.com/en-us/library/   -  person davidfowl    schedule 03.10.2013
comment
Дэвид, Вы имеете в виду версию 2.0.0-rc1?   -  person Dmitry    schedule 04.10.2013
comment
Да 2.0.0-rc1 и предстоящий выпуск 2.0.   -  person davidfowl    schedule 04.10.2013
comment
Давид, спасибо за помощь! Работает ar 2.0.0-rc1   -  person Dmitry    schedule 10.10.2013


Ответы (1)


Подводя итог комментариям Дэвида Фаула, можно сказать, что проблема заключалась в ошибке в SignalR версии 1.1.3, но исправлена ​​в более поздней версии. В частности, версия 2.0.0

person Stephen    schedule 24.07.2015