У меня есть приложение 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 четырехъядерных процессора)