我有一个简单的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:停止连接。
答案 0 :(得分:1)
microsoft / aspnet docker image继承自mono,它本身继承自debian:wheezy。我创建了自己的docker文件,它继承自ubuntu:1404,它解决了这个问题。我的猜测是之前没有为Web传输协议正确配置。