【问题标题】:Writes to database seem to have no effect写入数据库似乎没有效果
【发布时间】: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


【解决方案1】:

我解决了。

事实证明其中一个 HttpModules 没有被初始化。这是因为 web.config 文件已调整为 IIS6,并且应用程序在 IIS7 上设置为集成管道模式的应用程序池中运行。将应用程序池切换到经典模式实质上启用了向后兼容性。

无论如何,这里是帮助我弄清楚的资源:@​​987654321@

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 2020-07-04
    相关资源
    最近更新 更多