2011-03-16 52 views
0

我使用Sybase.Data.ASEClient命名空间从我的asp.net应用程序连接到Sybase DB。随着App最近的产品发布,我们在DatabaseHelper类中包含了一个代码,它只是试图执行ExecuteNonQuery()。在生产线中,说command.ExecuteNonQuery(),抛出一个异常,说.net sybase executenonquery exception

“尝试读取或写入受保护的内存,这通常表示其他内存已损坏。

但是这并不一致。该应用程序正常工作4天,并在第五天,我们突然得到这个错误的用户,然后没有人能够使用该应用程序时,试图使用涉及数据库访问功能。

我也google了一下,才知道Sybase.Data.ASEClient有一些内存泄漏问题。但是没有关于它是否得到修复的信息。

任何人都可以对此有所了解吗?您在之前的项目中遇到过这些问题吗?有没有办法以任何方式找出问题?

回答

1

这听起来像是Sybase驱动程序中的一个错误。

我会尝试从Sybase和/或更新版本的驱动程序获得支持。谷歌并不像Sybase支持那样有帮助,因为我相信你需要注册才能访问Sybase网站上的这类信息。关于内存泄漏,我记得在过去的2006年,Sybase驱动程序1.1.465.0有内存泄漏 - 这在1.1.516.0中修复了。这些都是Sybase 12的驱动程序,从那时起,事情自然就演变了很长时间。

+0

当托管应用程序的IIS被重新启动时,那么命中executenonquery()的功能就可以正常工作。我已在Sybase注册。我需要一个证明来证明我的客户端,它纯粹是Sybase.ASE.Client DLL中的一个错误,与代码修复无关。感谢您的指导。将更新你。 – SARAVAN 2011-03-16 11:35:19

+0

我会考虑用Sybase.AdoNet2.AseClient.dll v1.15.335.0或更高版本替换当前的驱动程序。这是一个ADO.NET 2驱动程序(即支持DbProviderFactory),AFAIK与Sybase V12和V15数据库兼容。 – Joe 2011-03-17 06:37:38