我有一个aspx.vb程序,用于检查表是否存在会话,如果没有连接到我们的ECM软件,则使用许可证,并使用会话信息更新表。如果用户尝试再次登录,则应找到现有会话,但仍然只使用一个许可证。
99%的时间可以正常工作,除非用户偶尔使用2个许可证,但只会在表格中创建一行,这样就会留下陷入困境的重复会话,必须手动断开才能释放许可证。
我添加了日志记录,它按照应有的方式命中代码,变量正在传递正确的值。在与数据库建立连接之前,代码是否可能过快地运行逻辑?
lvSql = "insert into OnBase_Sessions values (@dbSeqNum,@SID,@UName,@LastActivity,@ccSeqNum)"
x = New sqlCmds(lvSql, "ONBASEAPI")
x.addIntParameter("@dbSeqNum", SqlDbType.Int, 4, lvDataSourceSeq)
x.addStrParameter("@SID", SqlDbType.VarChar, 40, lvSession)
x.addStrParameter("@UName", SqlDbType.VarChar, 15, user.userName)
x.addStrParameter("@LastActivity", SqlDbType.DateTime, 0, System.DateTime.Now)
x.addIntParameter("@ccSeqNum", SqlDbType.Int, 4, lvClientCodeSeq)
x.exeNonQuery()
答案 0 :(得分:0)
了解使用Private over Public变量的重要性的宝贵经验。 :P