近期发现U8的所在目录剩余空间越来越来小,检查发现是U8的日志过大,2-3个G,有的甚至达到4G,用记事本基本打不开。
截取一点日志内容,发现一般是验证错误,也就是说账号或密码不正确。此前通过修改config中sa的密码解决了一个日志错误。
今日又发现了一个U8DispatchService.log
2013-03-30 09:03:39,384 [18588] ERROR FrameLogin [] - 在 System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType)
在 System.Data.SqlClient.SqlParameter.GetCoercedValue()
在 System.Data.SqlClient.SqlParameter.Validate(Int32 index, Boolean isCommandProc)
在 System.Data.SqlClient.SqlCommand.BuildParamList(TdsParser parser, SqlParameterCollection parameters)
在 System.Data.SqlClient.SqlCommand.BuildExecuteSql(CommandBehavior behavior, String commandText, SqlParameterCollection parameters, _SqlRPC& rpc)
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
在 UFSoft.U8.Framework.Login.BO.U8SystemDB.SetErrorPasswordCount(UserData userInfo, Int32 ErrorCount)
在 UFSoft.U8.Framework.Login.BO.LoginService.InternalSuspendUser(UserData userInfo, U8SystemDB systemDB, CustomError& cusex)
将参数值从 Int32 转换到 Int16 失败。
日志增长很快,每秒涨2k。
参照此前修改config的做法不生效,于是仔细研读日志内容,提示到ErrorCount,然道是某个账户的登录失败次数过多,导致int字段容不下了?
于是在数据库中搜索包含error的字段,终于在UA_user表中找到iErrorCount,其demo的数值已得到36727。这就是原因,可能是从我修改demo密码开始就一直报错了。