首页 > 解决方案 > 由于 IOException 与服务器的连接中断:无法从传输连接中读取数据:

问题描述

堆栈:.NET Core 3.1、Causal Cluster Neo4j (3.5.14)、Neo4j Driver (1.7.0)

我们正在开发社交应用程序,其中视频源从 neo4j 数据库加载,它用于某些分页并在随机页面上抛出连接错误。我观察到,当我持续使用该应用程序时,它工作正常,但如果我保持空闲 2-3 分钟并滚动提要,那么 api 会抛出错误。请参阅下面的异常

“发生一个或多个错误。(螺栓+路由://IP:端口/的服务器由于错误不再可用:与服务器的连接因 IOException 而中断:无法从传输连接读取数据:连接尝试失败因为连接方一段时间后没有正确响应,或者由于连接的主机没有响应而建立连接失败”

下面提到的是 Neo4j 上下文类

public class Neo4jContext
 {
   private IDriver _driver;
   private ConnectionString _connectionString;

   public Neo4jContext(IOptions<ConnectionString> connectionString)
   {
       _connectionString = connectionString.Value;
       if (_driver == null)
       {
           CreateDriver();
       }
   }

   public void CreateDriver()
   {
       _driver = GraphDatabase.Driver(_connectionString.Server, 
        AuthTokens.Basic(_connectionString.UserName, _connectionString.Password));
   }

   public ISession GetSession()
   {
       return _driver.Session();
   }}

下面是建立连接后我获取数据的代码

    using (var session = _context.GetSession())
           {
                var query = GetQuery(obj, ref parameters);
                var response = session.Run(query, parameters);
                result.Data = response.ToList();
                result.Success = true;
                return result;
             }

请注意我们正在使用单例范围的另一件事。

标签: .net-coreneo4j

解决方案


推荐阅读