2013-10-02 15 views
7

Tôi có một số vấn đề khi tiến hành tải xuống hoặc tập tin tải lên (WebClient.DownloadFileAsync | UploadFileAsync hoặc bằng HttpWebRequest) và đồng thời kêu gọi các phương pháp SignalR-hub:SignalR: không có tin nhắn cho đến khi tập tin được tải lên/tải về tại trang web cùng

SignalR cuộc gọi đã được dừng lại cho đến khi tải xong tệp. Có vẻ như vậy: tất cả các cuộc gọi signalr enqueuing. Tất cả các cuộc gọi enqueued được thực hiện thêm (sau khi tải tập tin).

đoạn mã của tôi:

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); 

thứ hai "TraceDocumentUploadingRequest" phương pháp trung tâm cuộc gọi (trong xử lý tải tập tin) sẽ được thực hiện vào trung tâm sau khi việc download file hoàn thành.

Trình xử lý tải tệp thực hiện cả trong chuỗi hiện tại hoặc trong trình xử lý khác (liên quan đến việc thực hiện phương thức DownloadFileByKey) - kết quả giống nhau.

Làm cách nào để tránh hành vi này và thực hiện các cuộc gọi phương thức trung tâm vào đúng thời điểm?

+0

Bạn đang sử dụng phiên bản SignalR nào? – davidfowl

+0

Tất cả các thành phần của phiên bản 1.1.3 – Dmitry

+4

Đây là thứ chúng tôi đã sửa trong các phiên bản sau của SignalR. Để giải quyết sự cố này, bạn có thể thử tăng số lượng kết nối đồng thời trong trình quản lý điểm dịch vụ lên một số thứ như 100: ServicePointManager.DefaultConnectionLimit = 100; http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.defaultconnectionlimit.aspx – davidfowl

Trả lời

0

Để tóm tắt nhận xét của David Fowl, sự cố là lỗi trong SignalR phiên bản 1.1.3 nhưng được khắc phục trong phiên bản sau. Phiên bản cụ thể 2.0.0

Các vấn đề liên quan