0

我有一个 ASP.NET 应用程序,DotNetNuke在我的大学中用于学生管理。

有时,在生成一些长时间运行的报告时,应用程序会抛出如下错误:

DataBinding:“System.Data.DataRowView”不包含名为 XXXX 的属性

哪里XXX可能不一样。

我必须强调所有这些属性(似乎找不到)都存在,并且它们是由存储过程生成的(在 Sql Management Studio 中查询时)。代码在 95% 的情况下都可以工作,但是在生成报告时,它会停止工作......

重新编译或应用程序重新启动后,一切似乎都正常工作(直到我再次生成一些报告)。

DotNetNuke站点可能一直都可以成功访问,而我的模块会抛出以前的异常。所有抛出错误的模块都是使用SqlServerDataSource. 我指定了一个e.Command.CommandTimeout = 60;但是......没有运气。我们的应用程序使用ObjectDataSource,SqlDataSource和代码隐藏数据绑定。这些错误似乎只出现在使用的页面中,SqlDataSource而不出现在使用ObjectDataSource或代码隐藏数据绑定的页面中。

为了解决机器上的这个“谜团”,我们创建了另一个实例,我们在其中移动了用于密集型和大型报告(如数据仓库)的表。对于本例,我们还安装了 Reporting Services。

因此,使用了 SQL 2005:

  • 实例 1:主要生产数据库 + Reporting Services 实例 1,用于简单报表
  • 实例 2:用于报告活动的数据库 + 用于大型报告的 Reporting Services 实例 2

我们还使用 1222 标志检查了死锁,但是当错误开始发生时,两个实例的日志中都没有死锁(实际上没有错误或警告)。

此外,主应用程序和两个报告服务实例都有单独的应用程序池。

服务器规格:

  • 操作系统:Windows 2003 R2,64 位
  • SQL Server 2005 标准版,64 位
  • 8 GB 内存
  • 英特尔至强 E 5345 2.33 Ghz(2 个四核)
4

1 回答 1

0

使用 SQL Profiler 监视来自 SQL Server 的错误。这将告诉您是 SQL Server 愚蠢还是 Web 服务器端有问题。

于 2009-03-31T04:44:36.240 回答