Странные ошибки DataRowView при генерации больших отчетов RS - PullRequest
0 голосов
/ 04 марта 2009

У меня есть приложение ASP.NET, построенное на DotNetNuke, которое используется в моем университете для управления студентами.

Время от времени при генерации какого-либо долгосрочного отчета приложение выдает ошибку, подобную этой:

Привязка данных: «System.Data.DataRowView» не содержит свойство с именем XXXX

, где XXX может отличаться.

Я должен подчеркнуть, что все эти свойства (которые, кажется, не найдены) существуют , и они генерируются нормально с помощью хранимых процедур (при запросах в Sql Management studio). 95% времени код работает, но при генерации отчетов он перестает работать ...

После перекомпиляции или перезапуска приложения все работает нормально (пока я снова не сгенерирую некоторые отчеты).

Сайт DotNetNuke может быть успешно доступен все это время, в то время как мои модули выдают предыдущие исключения. Все модули, которые выдают ошибки, построены с использованием SqlServerDataSource. Я указал e.Command.CommandTimeout = 60;, но ... не повезло. Наше приложение использует ObjectDataSource, SqlDataSource и привязку данных с выделенным кодом. Эти ошибки появляются только на тех страницах, где используется SqlDataSource, но не на тех, где используется ObjectDataSource или привязка данных с выделенным кодом.

Для решения этой «загадки» на машине мы создали еще один экземпляр, куда мы переместили таблицы, используемые для интенсивных и больших отчетов (например, хранилище данных). Для этого случая мы также установили службы отчетов.

Итак, SQL 2005 используется:

  • экземпляр 1: основная производственная база данных + экземпляр служб Reporting Services 1 для простых отчетов
  • экземпляр 2: база данных, используемая для отчетов о деятельности + отчетность Служба экземпляр 2 для больших отчетов

мы также проверили на наличие взаимоблокировок, используя флаг 1222, но когда начинаются ошибки, в журналах для обоих экземпляров нет тупиков (на самом деле ошибок или предупреждений).

Кроме того, существуют отдельные пулы приложений для основного приложения и для обоих экземпляров служб отчетов.

Характеристики сервера:

  • ОС: Windows 2003 R2, 64 бит
  • SQL Server 2005 Standard, 64 бит
  • 8 ГБ ОЗУ
  • Intel Xeon E 5345 2,33 ГГц (2 четырехъядерных процессора)

1 Ответ

0 голосов
/ 31 марта 2009

Используйте SQL Profiler для отслеживания ошибок с SQL Server. Это скажет вам, является ли SQL Server глупым или это проблема на стороне веб-сервера.

...