7

ファイルのダウンロードまたはアップロード (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);

2 番目の "TraceDocumentUploadingRequest" ハブ メソッド呼び出し (ファイル ロード ハンドラー内) は、ファイルのダウンロード完了後にハブで実行されます。

ファイル ロード ハンドラーは、現在のスレッドまたは別のスレッド (DownloadFileByKey メソッドの実現に関連) の両方で実行されます。結果は同じです。

この動作を回避し、適切なタイミングでハブ メソッドの呼び出しを強制するにはどうすればよいですか?

4

1 に答える 1

0

David Fowl のコメントを要約すると、この問題は SignalR バージョン 1.1.3 のバグでしたが、後のバージョンで修正されました。具体的にはバージョン2.0.0

于 2015-07-24T13:36:17.683 に答える