Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
C# NpgsqlConnection和OpenAsync()方法导致NullReferenceExeption_C#_Postgresql_Centos_Npgsql - Fatal编程技术网

C# NpgsqlConnection和OpenAsync()方法导致NullReferenceExeption

C# NpgsqlConnection和OpenAsync()方法导致NullReferenceExeption,c#,postgresql,centos,npgsql,C#,Postgresql,Centos,Npgsql,最近,我在与CentOS 8上的PostgreSQL 13数据库通信时遇到了一些问题。我无法使用NpgsqlConnection类中的OpenAsync()方法打开连接。Synchronous Open()方法工作正常,允许我创建和使用连接。 我希望可能有人偶然发现了类似的问题。 提前感谢您的帮助 示例代码: [Fact] public async Task TestDatabaseConnection() { N

最近,我在与CentOS 8上的PostgreSQL 13数据库通信时遇到了一些问题。我无法使用NpgsqlConnection类中的OpenAsync()方法打开连接。Synchronous Open()方法工作正常,允许我创建和使用连接。 我希望可能有人偶然发现了类似的问题。 提前感谢您的帮助

示例代码:

             [Fact]
        public async Task TestDatabaseConnection()
        {
            NpgsqlLogManager.Provider = new NLogLoggingProvider();
            NpgsqlLogManager.IsParameterLoggingEnabled = true;
            Npgsql.NpgsqlConnection con = new Npgsql.NpgsqlConnection("Server=xxx;Database=xxx;User Id=xxx;Password=xxx");
            try
            {
                //con.Open(); works ok
                await con.OpenAsync(); //cause error
            }
            catch (Exception exc)
            {
                Console.WriteLine("test " + exc);
            }
        }
日志:


我们设法找到了解决办法。在连接字符串中添加超时参数就足够了。由于某种原因,建立连接需要很长时间。原因仍在调查中。平均来说,打开连接需要21秒,但更高的超时参数可以防止异常

例如:

Server=xxx;Database=yyy;User Id=bbb;Password=aaa;Timeout=100
关于这一问题的进一步讨论可在此处找到:

Server=xxx;Database=yyy;User Id=bbb;Password=aaa;Timeout=100