错误ORA-12571(TNS:数据包写入程序失败)在Web服务中的含义是什么?

时间:2009-10-16 18:24:21

标签: asp.net oracle web-services ora-12571

后台:我正在调用用ASP.NET编写的查询Oracle数据库的Web服务。我知道Web服务本身可行,因为我在其他应用程序之前使用过它。所以我在Visual Studio中有一个Web应用程序,我一直在来回切换,从“DEV”Web服务指向同一Web服务的生产配置版本进行测试。指向'DEV'配置的Web服务没问题,但是调用生产版本我总是得到一个调用该服务的异常:

SoapException was unhandled by user code
Server was unable to process request. ---> could not execute query
[ SELECT this_.FIELD1 as FIELD1_18_0_, this_.FIELD2 as FIELD12_18_0_ FROM ABC.TABLE_A this_ WHERE this_.FIELD1 like :p0 ORDER BY this_.FIELD1 asc ]
Positional parameters:  #0>00073%
[SQL: SELECT this_.FIELD1 as FIELD1_18_0_, this_.FIELD2 as FIELD12_18_0_ FROM ABC.TABLE_A this_ WHERE this_.FIELD1 like :p0 ORDER BY this_.FIELD1] ---> ORA-12571: TNS:packet writer failure

我针对相应的数据库运行SQL查询(直接从异常消息中剪切并粘贴),然后查询返回了预期的数据。我已经尝试更新和重新添加Web服务引用作为“服务引用”(.NET 3.0+方式)和“Web引用”(旧.NET方式),并且都给出了相同的错误。

问题:那么,“ORA-12571:TNS:数据包写入程序失败”错误在Web服务的上下文中意味着什么?查找Oracle错误编号会给出一些非常模糊的可能原因,例如“松散的电缆连接”或“IP地址冲突”。我很确定它们都不是这些,因为另一个应用程序目前正在成功使用该Web服务。可能是某种配置错误,或者更微妙的东西?其他人看到这个令人烦恼的Oracle错误号被归因于与Web服务相关的东西吗?

2 个答案:

答案 0 :(得分:1)

我建议更仔细地重新审视您的假设,因为这显然是与数据库的Web服务对话中的错误,并且应该完全独立于w / s调用者。

如果w / s调用正在生成此特定异常,则它应该对所有其他调用执行此操作,因此成功使用Web服务的“其他应用程序”根本不执行相同的代码,或者存在外部因素播放。

无论哪种方式,它与服务的注册或调用方式无关。

答案 1 :(得分:1)

你的电话是从ws客户端到ws服务器再到oracle数据库。

您的错误是ORA错误,由数据库生成。所以你的问题可能在ws服务器和数据库之间。

当您针对相应的数据库运行“SQL查询”时,您是否从Web服务器执行此操作?如果没有,你能尝试吗?确保使用相同的连接配置。

修改

根据下面的评论,真正的问题是司机不匹配。