生产服务器上SignalR客户端和服务器连接成功,但无法向客户端推送数据

7

我使用了SignalR开发了一个Web应用程序,在我的开发服务器上完美运行。但是由于某些未知原因,在生产服务器上无法正常工作。

我进行了一些测试:

$.connection.hub.start().done(function () {

        console.log('started');

});

这总是按预期在控制台中显示我的“已启动”信息。因此,客户端和服务器已连接。但是当我发送任何数据,如登录凭据时,我没有收到任何回应。
这是连接帧图像。正如您所看到的,客户端正在向服务器发送数据,但没有收到任何响应。

enter image description here

public override Task OnConnected()
{

        Clients.All.Listen("Connected to HUB");

}

客户端监听方法:
hub.client.listen = function (response) {

    console.log('Listen', response);

}

我使用Listen方法进行调试,但没有输出任何内容,因此SignalR客户端和服务器未连接。

编辑:

在这里报告问题:https://github.com/SignalR/SignalR/issues/4279,如果有帮助的话。

编辑2:

我的Web应用程序是Vue js 2应用程序。我使用vue-cli编译并上传到服务器。我的signalr.js文件是从一个ASP.NET MVC项目复制而来的。

我创建了一个使用SignalR 2.4的测试ASP.NET MVC 5应用程序,并且能够在实时服务器上通信。


那么关于问题中提到的服务器,我应该做出什么样的假设呢?“它在生产服务器上无法工作。” - Azaz ul Haq
@AzazulHaq 噢,抱歉,是IIS服务器。 - Waleed
@AzazulHaq,什么都不行。服务器端没有触发任何事件。例如,在onConnect中,我有Clients.All.Listen("Connected to HUB"); 但是这个方法没有被触发,我在控制台中也看不到任何输出。而在我的本地服务器上,这个方法可以正常工作。 - Waleed
请问您能否编写客户端侦听方法的代码? - Azaz ul Haq
1
有两件事需要考虑:您的代码压缩是否会重命名生产服务器中的监听回调函数?您的生产服务器是否启用了WebSockets? - reckface
显示剩余5条评论
1个回答

0

https://learn.microsoft.com/en-us/aspnet/signalr/overview/testing-and-debugging/troubleshooting

IIS问题

本节包含与Internet Information Services相关的问题。

SignalR在Visual Studio开发服务器上运行,但在IIS上不起作用

SignalR支持IIS 7.0和7.5,但必须添加对无扩展名URL的支持。要添加对无扩展名URL的支持,请参见https://support.microsoft.com/kb/980368

SignalR需要在服务器上安装ASP.NET(默认情况下,IIS未安装ASP.NET)。要安装ASP.NET,请参见ASP.NET下载。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接