我有一个基于DotNetNuke
构建的ASP.NET应用程序,在我的大学用于学生管理。
任何时候,当生成一些长时间运行的报告时,应用程序会抛出这样的错误:
DataBinding:'System.Data.DataRowView'不包含属性 名称为XXXX
XXX
可能不同。
我必须强调所有这些属性(似乎找不到)存在并且它们由存储过程生成(在Sql Management studio中查询时) 。 95%的代码工作时间,但在生成报告时,它停止工作......
重新编译或应用程序重启后,一切似乎都正常工作(直到我再次生成一些报告)。
DotNetNuke
站点可能会一直成功访问,而我的模块会抛出先前的异常。所有抛出错误的模块都是使用SqlServerDataSource
构建的。我已经指定了e.Command.CommandTimeout = 60;
但是......没有运气。
我们的应用程序使用ObjectDataSource
,SqlDataSource
和代码隐藏数据绑定。这些错误似乎只出现在使用SqlDataSource
的页面中,而不会出现在使用ObjectDataSource
或代码隐藏数据绑定的页面中。
为了在机器上解决这个“神秘”,我们创建了另一个实例,我们移动了用于密集和大型报告的表(如数据仓库)。对于此实例,我们还安装了Reporting Services。
因此,使用了SQL 2005:
我们还使用1222标志检查了死锁,但是当错误开始发生时,两个实例的日志中都没有死锁(实际上没有错误或警告)。
此外,主应用程序和两个报告服务实例都有单独的应用程序池。
服务器规格:
答案 0 :(得分:0)
使用SQL事件探查器监视SQL Server中的错误。这将告诉您SQL Server是愚蠢的还是Web服务器端的问题。