Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Signalr 信令客户端连接关闭,信令服务器大约同时返回404_Signalr_.net 5_Asp.net Core Signalr - Fatal编程技术网

Signalr 信令客户端连接关闭,信令服务器大约同时返回404

Signalr 信令客户端连接关闭,信令服务器大约同时返回404,signalr,.net-5,asp.net-core-signalr,Signalr,.net 5,Asp.net Core Signalr,我们有一个net5.0控制台项目,它运行一个signer客户机,其中一个net5.0 web服务器托管一个signer服务器。服务器上不需要身份验证。客户端每小时抛出一次异常 Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.. 同时,服务器正在向信号集线器发送一个404。示例如下: http://xxxxx/LineH

我们有一个net5.0控制台项目,它运行一个signer客户机,其中一个net5.0 web服务器托管一个signer服务器。服务器上不需要身份验证。客户端每小时抛出一次异常

Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host..
同时,服务器正在向信号集线器发送一个404。示例如下:

http://xxxxx/LineHub?id=NysqhPnGO1wgF5YTG1cWJw

以下是如何构建客户端连接:

    var connection = new HubConnectionBuilder()
        .WithUrl(lineHubUrl)
        .ConfigureLogging(s =>
        {
            s.SetMinimumLevel(LogLevel.Debug);
            s.AddFilter("Microsoft.AspNetCore.SignalR", LogLevel.Debug);
            s.AddFilter("Microsoft.AspNetCore.Http.Connections", LogLevel.Debug);
            s.AddApplicationInsights(configuration.GetValue<string>("ApplicationInsights:InstrumentationKey"));
        })
        .WithAutomaticReconnect(new RandomRetryPolicy())
        .Build();

我们确实有逻辑来重新启动连接,并且它成功地重新启动了连接,但是如果在重新连接时碰巧发送到信号服务器的消息,则消息将失败。

此错误通常意味着目标计算机正在运行,但您尝试连接的服务不可用。(它停止、崩溃或正忙于另一个请求。)。问题可能与防火墙有关。遇到此问题时,请尝试检查客户端和服务器是否可以ping通过。这是一个,你可以检查一下。与信号服务器的通信在大部分情况下运行良好。这项服务是可用的。发送和接收消息。防火墙端口很好,因为大部分时间一切正常。每小时就有一次打嗝。信号器服务器没有关闭。我可以在服务器日志中看到,它在客户机连接丢失的同时返回404,如上所述。您发布的链接是针对一个根本无法建立连接的问题。这在这里不适用。嗨@DennisKiesel,你解决过这个问题吗?如果不是,则说明集线器是否承载在多个实例上,而没有粘性会话。这里是关于连接错误的疑难解答,您可以检查。@ZhiLv我们仍然没有解决问题。我们没有使用多个实例,因此粘性会话不是问题。我在排除故障时偶然看到了那篇文章,但它似乎不适用于这里。
    services.AddSignalR(options =>
    {
        options.MaximumReceiveMessageSize = null;
        options.EnableDetailedErrors = true;
        options.ClientTimeoutInterval = TimeSpan.FromMinutes(1);
        options.HandshakeTimeout = TimeSpan.FromMinutes(1);
    });