ASP.NET CORE 2.1 Server timeout while debugging

核能气质少年 提交于 2019-12-10 02:21:07

问题


'Error: Server timeout elapsed without receiving a message from the server.'.

I'm trying to debug some server-side code and while I do that the client gets disconnected in less than a minute.

I'm only using SignalR to communicate to clients, without controllers yet.

Is there any setting that can disable timeout or at least make it way longer than it is now?

my launchSettings.json:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:26793",
      "sslPort": 44386
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_HTTPS_PORT": "44386"
      }
    },
    "Api": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_URLS": "https://localhost:5001;http://localhost:5000"
      }
    }
  }
}

回答1:


Thanks to @Arhire Ionut

Here is how to increase Javascript client timeout

hubConnection.serverTimeoutInMilliseconds = 100000; // 100 second

More details here => https://github.com/aspnet/Docs/issues/6885




回答2:


What @MahmoudFarhat mentioned in another answer is correct. But also take a look at this link and then read my comments below.

If signalR got disconnected, you should try re-establishing the connection again. The connection could drop for several other reasons, including the user switching networks. For example if the user is using a cell-phone and connected to the home/office Wifi but steps out which then connects to cellular data connection.

To reconnect you could use the following (works like a charm for me):

// re-establish the connection if connection dropped
connection.onclose(() => setTimeout(startSignalRConnection(connection), 5000));

where startSignalRConnection is :

const startSignalRConnection = connection => connection.start()
  .then(() => console.info('Websocket Connection Established'))
  .catch(err => console.error('SignalR Connection Error: ', err));

and connection is

const connection = new HubConnectionBuilder()
  .withUrl(connectionHub, options)
  .withHubProtocol(protocol)
  .build();


来源:https://stackoverflow.com/questions/49816245/asp-net-core-2-1-server-timeout-while-debugging

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!