2014-10-07 32 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