Nhibernate未更新Win Server 2008上的级联关系

Nhibernate未更新Win Server 2008上的级联关系,nhibernate,windows-server-2008,nhibernate-cascade,Nhibernate,Windows Server 2008,Nhibernate Cascade,我们正在使用NHibernate和Fluent mapping构建一个WebForms应用程序 在我们的模型中,我们有一个简单的引用与Cascade.All()集的关系。保存实体时,NH的行为符合预期,1)保存引用的实体,2)更新父实体并设置子键 但是,将同一版本部署到生产服务器(Win server 2008)并将应用程序指向同一数据库会产生不同的输出。NH 1)保存引用的实体并。。和。。就这样,没有别的事情发生 我知道我们的测试和生产环境应该是一样的等等。。但我们现在正在部署,我根本不知道这

我们正在使用NHibernate和Fluent mapping构建一个WebForms应用程序

在我们的模型中,我们有一个简单的
引用
Cascade.All()
集的关系。保存实体时,NH的行为符合预期,1)保存引用的实体,2)更新父实体并设置子键

但是,将同一版本部署到生产服务器(Win server 2008)并将应用程序指向同一数据库会产生不同的输出。NH 1)保存引用的实体并。。和。。就这样,没有别的事情发生

我知道我们的测试和生产环境应该是一样的等等。。但我们现在正在部署,我根本不知道这是怎么发生的

Win 2008 Server中的NH是否存在关于程序集权限之类的已知问题?看起来代理由于某种原因无法正常工作,但我真的不知道为什么

编辑1:分析NH日志文件,我发现NH没有注意到引用的属性在Win Server 2008中发生了更改。为什么?不知道,但它看起来越来越像一个代理问题

非常感谢您的帮助


菲利普

我终于找到了问题的根源。NH没有更新relatioship,因为它没有涵盖这些语句的事务

乍一看,这似乎不符合逻辑,但在其他情况下,NH只有在打开事务时才能正常运行(例如:)。我们在另一个项目中也遇到过这种情况,理论也适用

但是Windows Server 2008呢?实际上,问题出在IIS 7的web.config文件中。当我们使用OpenSessionInView设计的自动事务控件时,我们注册了一个
httpModules
项。但是在IIS7中,我们必须注册一个
模块
项,而我们没有它。因为它没有配置,所以我们没有事务,没有事务就无法工作

经验教训#1:使用NHibernate时,事务比以往任何时候都更为重要。 经验教训#2:永远不要禁用IIS兼容性消息(为什么有人这么做?)


Filipe

是否已打开nHibernate日志记录。“这里面有没有什么东西可能暗示出一些不一致的地方?”大卫编辑了这篇通知它的帖子。我将尝试将Castle的代理更改为另一个代理,以查看是否有更改。