【发布时间】:2014-06-21 03:54:32
【问题描述】:
首先,我们有一个使用 NHibernate(版本 3)和 Oracle 11g 数据库的 MVC Web 应用程序。
应用程序正在运行,但是当我们在生产服务器中发布时,发生了一个奇怪的场景:
- 用户访问应用程序并执行任务,例如,选择菜单链接。
- 用户等待几分钟(2-3 分钟)。
- 用户执行另一项任务,例如,重新加载同一页面或选择另一个链接进入菜单。
- 应用程序失败并出现
ORA-12571: TNS:packet writer failure异常。 - 用户只需刷新错误页面,应用就可以工作了。
我们尝试做的第一件事是隔离问题,因此我们将应用程序发布到另一个配置完全相同的服务器:
- 当然是相同的二进制文件。
- 相同的 Oracle x64 客户端版本,甚至是次要版本。
- 与 IIS 7.5 相同的 Windows Server 2008 版本。
- 相同的 IIS 配置(我们使用 WinMerge 比较了 windows/system32/inetsrv/config 文件)。
- 访问相同的生产数据库。
令我们惊讶的是,我们无法重现该问题。
拜托,有人知道发生了什么吗?
【问题讨论】:
-
听起来更像是防火墙设置,或者杀毒,看看dba-oracle.com/t_ora_12571_tns_packet_writer_failure.htm
-
有可能。但实际上是oracle客户端驱动的问题。
-
@LowFlyingPelican:是的,它可能是防火墙,但在某些情况下,不可能更改 Oracle 服务器或防火墙设置(我们无法控制)。 Gustavo 的解决方案对我来说似乎要简单得多。
标签: asp.net nhibernate oracle11g