我们已经有一段时间遇到了将数据保存在我们的SQL数据库中的问题。使用aspnet_state服务会话损坏
有时候,记录会保存有与该行其余部分不匹配的数据,这使得看起来在某种程度上,数据在被传递到数据库之前正在被其他事物(可能是另一个用户的数据)“交换” 。
我们确实使用了TransactionScopes以及隔离级别ReadCommitted这使我认为数据完整性问题在于应用程序而不是数据库级别。
我们确实广泛使用会话,并且我们开始认为腐败数据的时间与我们在白天部署系统更新的时间类似。
我们使用aspnet_state服务在应用程序重新启动时保持会话。
我们的用户依赖于终端会话,因此多个用户都登录到同一台服务器并通过浏览器启动系统。
我们过去注意到用户使用相同的域凭据登录,但我们现在相对确信用户现在使用唯一帐户登录。
99.9%的数据是正确的,但我们一直在努力理解可能会导致此间歇性数据完整性问题的原因。
我们现在限制部署到外面的工作时间处理死亡的痛苦,但这并非总是可能。
任何人都可以阐明为什么/如何发生这种情况?
编辑:我们现在已经分离出这对DAL层,看到SQL query returns incorrect value in multi user environment