SqlSugar偶尔会抛出“连接数据库过程中发生错误”异常(无规律,偶现,连接字符串没有问题) 返回

SqlSugar
9 338

SqlSugar版本:5.0.0.14

服务器版本:Windows Server 2012 R2 Datacenter

MySql版本:5.6.16-log


SqlSugarClient对象每次请求都是独立的。

连接字符串没有问题,偶尔SqlSugar内部会抛出异常“连接数据库过程中发生错误“ 这类错误。无法重现(没有规律),压力测试有一定几率重现

SqlSugar源码都是在调用AdoProvider.CheckConnection方法时抛出SqlSugar.SqlSugarException异常。





异常信息:

 {    

"ClassName": "System.Security.Authentication.AuthenticationException",    

"Message": "Authentication failed, see inner exception.",    

"Data": null,    

"InnerException": {      

"ClassName": "System.ComponentModel.Win32Exception",      

"Message": "为验证提供的消息或签名已被更改",      

"Data": null,      

"InnerException": null,      

"HelpURL": null,      

"StackTraceString": null,      

"RemoteStackTraceString": null,      

"RemoteStackIndex": 0,     

"ExceptionMethod": null,      

"HResult": -2147467259,      

"Source": null,      

"WatsonBuckets": null,     

"NativeErrorCode": -2146893041   

},   

"HelpURL": null,    

"StackTraceString": "   at MySql.Data.Common.Ssl.StartSSL(Stream& baseStream, Encoding encoding, String connectionString)   

at MySql.Data.MySqlClient.NativeDriver.Open()   

at MySql.Data.MySqlClient.Driver.Open()  

at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)   

at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()   

at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()   

at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()  

at MySql.Data.MySqlClient.MySqlPool.GetConnection()  

at MySql.Data.MySqlClient.MySqlConnection.Open()  

at SqlSugar.AdoProvider.CheckConnection()",    

"RemoteStackTraceString": null,   

"RemoteStackIndex": 0,   

"ExceptionMethod": null,    

"HResult": -2146233087,   

"Source": "MySql.Data",   

"WatsonBuckets": null  }, 

"StackTrace": "   

at SqlSugar.Check.fyException(Boolean isException, String message, String arg, Exception ex, IDbConnection conn)  

at SqlSugar.AdoProvider.CheckConnection()  

at SqlSugar.MySqlProvider.GetCommand(String sql, SugarParameter[] parameters)   

at SqlSugar.AdoProvider.GetScalar(String sql, SugarParameter[] parameters)", 

"Source": "SqlSugar", 

"Message": "English Message : Connection open error . Authentication failed, see inner exception.nChinese Message :  连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,实在找不到原因请先Google错误信息:Authentication failed, see inner exception..", 

"Data": {},  "HelpLink": null, 

"HResult": -2146233088}


热忱回答9

  • 提供测试代码

    0 回复
  • 将代写码在API里面 发出测试代码

    0 回复
  • 不要有任何封装

    0 回复
  • 这个问题没有固定的模式可以重现,完全随机并且出现频率很少。

    0 回复
  • @黑黑的:你不发测试用例代码我没办法给你确认

    0 回复
  • 或者你自个都没有用过用例做过测试

    0 回复
  • 这是偶发性的,测试用例无法重现,不清楚在什么情况下会出现,只能知道每次都是在MySql.Data.Common.Ssl.StartSSL方法时抛出的Win32异常,MySql.Data是8.0.15.今天又出现了一次类似异常。网上查资料说关闭MySql的SSL功能就正常,想找到一种不通过关闭SSL功能的方法。


    异常信息:

    {
            "ClassName": "System.Security.Authentication.AuthenticationException",
            "Message": "Authentication failed,
             see inner exception.",
            "Data": null,
            "InnerException": {
                "ClassName": "System.ComponentModel.Win32Exception",
                "Message": "提供给函数的缓冲区太小。",
                "Data": null,
                "InnerException": null,
                "HelpURL": null,
                "StackTraceString": null,
                "RemoteStackTraceString": null,
                "RemoteStackIndex": 0,
                "ExceptionMethod": null,
                "HResult": -2147467259,
                "Source": null,
                "WatsonBuckets": null,
                "NativeErrorCode": -2146893023
            },
            "HelpURL": null,
            "StackTraceString": "   at MySql.Data.Common.Ssl.StartSSL(Stream& baseStream,
             Encoding encoding,
             String connectionString)\r\n   at MySql.Data.MySqlClient.NativeDriver.Open()\r\n   at MySql.Data.MySqlClient.Driver.Open()\r\n   at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)\r\n   at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()\r\n   at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()\r\n   at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()\r\n   at MySql.Data.MySqlClient.MySqlPool.GetConnection()\r\n   at MySql.Data.MySqlClient.MySqlConnection.Open()\r\n   at SqlSugar.AdoProvider.CheckConnection()",
            "RemoteStackTraceString": null,
            "RemoteStackIndex": 0,
            "ExceptionMethod": null,
            "HResult": -2146233087,
            "Source": "MySql.Data",
            "WatsonBuckets": null
        }


    0 回复
  • @黑黑的:测试用例定时跑一天 不出错就是你代码问题

    0 回复
  • MYSQL.DATA 推荐用 8.0.2.1


    0 回复