【发布时间】:2015-05-09 16:51:30
【问题描述】:
我正在使用部署到 IIS/Windows Server 2008 R2 的用 C# 编写的 ASP.NET Web 应用程序。该应用程序使用 NHibernate 与运行在联网 unix 服务器上的 Oracle 数据库进行交互。
应用程序对数据库的写入似乎没有效果。
如果我手动编辑 Oracle 数据库中记录的值,则新值会由应用程序反映。但是,如果我尝试使用应用程序的自定义“保存”功能更改值,则更改不会反映在数据库中。似乎读取成功,但写入失败。
为什么写入似乎失败了?
更多信息:
没有收到明显的错误消息(即应用程序没有抛出异常,并且似乎继续运行,好像一切正常)。
此应用程序的另一个实例在 IIS/Windows Server 2003 上运行。此实例可以写入 Oracle 数据库(即,单击“保存”后使用数据库查看器可以立即在数据库中看到更改)。
2003/2008 应用程序之间的代码几乎相同。但是,在 2008 服务器上,我使用的是较新版本的 Oracle 库,并且我将 Visual Studio 项目的目标体系结构从“任何 CPU”更改为“x86”(2008 服务器是 64 位,而 2003 服务器是 32-位)。
免责声明:
我在使用 IIS、NHibernate、Oracle 数据库、Windows Server 2003 和 Windows Server 2008 R2 方面的经验非常有限。不过,我确实有更多使用 C#、ASP.NET Web 应用程序、Visual Studio 和 MSSQL 数据库的经验。
【问题讨论】:
-
谁知道呢。请显示一些持久性操作的代码。
-
作为纯粹的占卜,听起来你并没有提交交易。
-
恕我直言,在 2003 服务器上运行的应用程序使用与在 2008 服务器上运行的完全相同的持久性代码,并且写入肯定在 2003 服务器上工作,所以我不相信这是代码的问题(除非由于环境不同而需要以不同的方式编写,但这对我来说似乎不太可能)。如果我对此有误,请纠正我。
标签: asp.net iis-7 web-config iis-6 httpmodule