解决了一个更新数据库失效的问题
问题:调用nHibernate的update方法后,数据库中的数据不变化,没有错误提示。
背景:在我的开发机上有此现象,测试系统和生产系统都没有。
解决过程:
考虑到生产系统没有此问题,大概率是本地的某些配置或文件出了问题,思路是:把生产系统复制到本地,搭建调试系统,此时的系统应当是能够正常更新的,再用开发系统逐批替换文件(目的是缩小范围),再在页面上进行更新操作,观察结果,直到找到发生无法更新的现象为止。
1.替换bin目录,其中包括全部dll文件,未发现问题
2.替换全部aspx文件,未发现问题
3.替换全部js文件,未发现问题
4.替换系统中自定义的配置文件,未发现问题
5.替换web.config,发现问题。比较两个系统的web.config,发现本机的在<system.webServer>节有<modules>和<handlers>节,突然想起,此前修改过这里,关于“集成”和“经典”托管管道模式的区别。现在是的情况是,web.config中设置为支持“集成”模式的配置,而实际在IIS中选择的是“经典”。
把这两项注释掉,在<system.web>节中恢复<httpModules>和<httpHandlers>设置,重新登录系统,再进行更新测试,问题解决,可以正常更新。
为了证伪,把<httpModules>和<httpHandlers>重新注释掉,恢复<modules>和<handlers>节,再进行更新测试,问题再次出现,所以证实了就是这里的问题。