2014-10-07 26 views
2

我目前正在開發一個MVC 5 web應用程序。當在async中使用SignalR 2.1.2上傳blob(azure blob存儲)時,我遇到了一個問題。 我的異步控制器的ActionResult使用此代碼:SignalR和UploadFromStreamAsync在IIS Express和Azure Free WebSites中有不同的行爲

var context = GlobalHost.ConnectionManager.GetHubContext <ProgressHub>(); 
context.Clients.All.newUpload ("Start Uploading ... Please wait"); 
await blob.UploadFromStreamAsync (model.Video.InputStream); 
context.Clients.All.endUpload ("Upload complete"); 

一切工作正常異步的IIS快遞(異步和SignalR),但不是當我部署在Windows Azure上免費網站,SignalR和UploadFromStreamAsync停止異步工作。

有什麼想法?

編輯1:

功能一切正常,該視頻流是正確的,上傳成功,唯一的問題是,該任務不是在異步模式下執行。

回答

1

這可能是因爲Windows Azure Free網站不支持WebSockets,SignalR會默認嘗試使用它。嘗試看看SignalR - How do I disable WebSockets,看看是否有幫助。

+0

好主意。這是我檢查的第一件事。但事實上在Windows Azure網站中,如果Websocket未啓用,signalR將自動使用SSE。 – RPE 2014-10-08 13:40:27