我已经使用SignalR开发了一个Web应用程序,它可以在我的开发服务器上完美运行。但是由于某些未知原因,它无法在生产服务器上运行。
我已经做了一些测试:
$.connection.hub.start().done(function () {
console.log('started');
});
这总是使我的“开始”进入控制台。因此客户端和服务器已连接。但是当我发送任何数据(例如登录凭据)时,我什么也收不到。
这是连接框架图像。如您所见,客户端正在向服务器发送数据,但未收到任何响应。
public override Task OnConnected()
{
Clients.All.Listen("Connected to HUB");
}
客户端监听方法:
hub.client.listen = function (response) {
console.log('Listen', response);
}
有一个我用来调试的Listen方法。这不会打印任何内容。因此信号发送器客户端服务器未连接。
编辑:
此处报告的问题:https://github.com/SignalR/SignalR/issues/4279(如果有帮助)。
EDIT2:
我的Web应用程序是Vue js 2应用程序。我使用vue-cli编译并上传到服务器。我的signalr.js文件是从ASP.NET MVC项目复制的。
我使用SignalR 2.4开发了一个Test ASP.NET MVC 5应用程序,并且能够在实时服务器上进行通信。
答案 0 :(得分:0)
https://docs.microsoft.com/en-us/aspnet/signalr/overview/testing-and-debugging/troubleshooting
IIS问题
本节包含Internet Information Services的问题。
SignalR可在Visual Studio开发服务器上使用,但不能在IIS中使用
IIS 7.0和7.5支持SignalR,但必须添加对无扩展名URL的支持。添加对无扩展名的支持 网址,请参阅https://support.microsoft.com/kb/980368
SignalR要求在服务器上安装ASP.NET(默认情况下,IIS上未安装ASP.NET)。要安装ASP.NET,请参阅ASP.NET 下载。