我们公司的代码是放在一个IIS 托管的,我们有一个根据子域名连接不同数据库功能,但是一直出现数据混乱问题。我纠结了很久,最终将问题锁定在 IIS 上,于是我新创建一个测试网站,自己一个人测试的时候,完全没有数据混乱的问题。
关于数据切换错乱问题,今天算是得出了一个正确的答案,我模拟生产服务器上的网站添加两个子域名。我在测试自己的网站时,没有其他人访问切换掉 static 数据库连接字符串,感觉据没有问题。但是在生产服务器是有很多人在访问的,就会导致 static 连接字符串错乱。
在一个用户访问通过连接修改了配置(static字段)后,另一个访问者也会被动的访问另一个数据库。
处理这种问题有两种解决方法:
《1》我们只能让一个IIS网站,连接一个数据库,要切换数据库,就跳转到另一个网站,不能在同一个网站去切换数据库,这样做势必会出现数据混乱。
《2》代码重构,不要将数据库连接放在静态的类中,可以用session 保存。