部署在docker容器中时,SignalR应用程序无法正常工作

时间:2015-07-27 15:47:15

标签: docker signalr dnx .net-core

我有一个简单的SignalR应用程序,可以向客户端吐出随机数。我可以在ubuntu机器上使用dnx和kestrel运行它,但是当我在docker容器中部署相同的应用程序时,它在某些意义上不起作用,即signalR集线器永远不会被初始化,我也看不到它抽取任何数据。有人见过这种行为??

这是我的project.json,如果它有帮助

{
"webroot": "wwwroot",
"version": "1.0.0-*",

"dependencies": {
    "Kestrel": "1.0.0-beta5",
    "Microsoft.AspNet.Mvc": "6.0.0-beta5",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta5",
    "DotNetEx.Reactive": "1.0.7",
    "Microsoft.AspNet.SignalR.Server": "3.0.0-beta5"
},

"commands": {
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000",
"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004"
},

"frameworks": {
    "dnx451": { },
    "dnxcore50": { }
}
}

我打开了跟踪并将传输超时增加到1分钟。但它仍然超时......有没有办法调试为什么会发生这种情况?

jquery.signalr-2.1.0.min.js:8 [17:28:05 GMT-0400(东部夏令时间)] SignalR:此浏览器支持SSE,跳过Forever Frame。 jquery.signalr-2.1.0.min.js:8 [17:28:05 GMT-0400(东部夏令时间)] SignalR:打开长http://10.28.51.145:5004/signalr/connect轮询请求? ... jquery.signalr-2.1.0.min.js:8 [格林威治标准时间-0400(东部夏令时间)17:29:45] SignalR:尝试连接时,longPolling超时。 jquery.signalr-2.1.0.min.js:8 [格林威治标准时间-0400(东部夏令时间)17:29:45] SignalR:中止xhr请求。 jquery.signalr-2.1.0.min.js:8 [17:29:45 GMT-0400(东部夏令时间)] SignalR:停止连接。

1 个答案:

答案 0 :(得分:1)

microsoft / aspnet docker image继承自mono,它本身继承自debian:wheezy。我创建了自己的docker文件,它继承自ubuntu:1404,它解决了这个问题。我的猜测是之前没有为Web传输协议正确配置。