Тайм-аут вопрос. строго типизированные наборы данных и источники данных объектов - PullRequest
0 голосов
/ 04 августа 2009

Я обнаружил, что тонна дерьма непонятна, а не примеры того, как я могу начать решать проблему. Не могу поверить, что я потратил на это больше 10 минут, но прошло уже 3 часа.

Я смотрю страницу aspx, рядом с которой нет кода. Эта страница предоставляет отчет в формате PDF.

Отчет Crystal связан с источником данных объекта, который связан с одним из адаптеров таблиц в тупо большом наборе данных.

Проблема в том, что время запроса истекло. Это длительный процесс (50 секунд) и время ожидания составляет 30 секунд. Я смотрел на добавление частичного класса, но так как объекты не связаны в коде, я не смог бы установить время ожидания таким образом, и это веб-сайт, и поэтому код для набора данных в любом случае представляет собой целую связку XML и я не уверен, что могу добавить частичный класс здесь, чтобы выставить время ожидания, и если бы я мог, я бы повторил около 70 раз, один раз для каждого адаптера.

Так у кого-нибудь есть лучший, более простой или, по крайней мере, метод, который работает, чтобы я мог получить этот отчет о кристалле, сегодня:)

Спасибо

Ответы [ 4 ]

2 голосов
/ 16 декабря 2011

Если вы используете и ObjectDataSource, вы используете частичный класс для изменения времени ожидания команды.

Добавьте следующий код в событие objectCreated ObjectDataSource на странице aspx;

protected void ObjectDataSource1_ObjectCreated(object sender, ObjectDataSourceEventArgs e)
{
    DataSet1TableAdapters.DataTable1Adaptor ta;
    ta = (DataSet1TableAdapters.DataTable1Adaptor)e.ObjectInstance;
    ta.setCommandTimeOut(60);

}

Сори пропустил часть о частичных классах. Взгляните на Время ожидания команды Control TableAdapter глобально , чтобы установить время ожидания команды

0 голосов
/ 19 сентября 2009

Существует две возможности: оптимизировать процедуру или увеличить время ожидания соединения.

Я знаю, что вы сказали, что время ожидания команды истекло, но я бы поспорил, что время ожидания соединения с базой данных. Я никогда не слышал о тайм-ауте командного объекта.

Вы пытались изменить / установить время ожидания в строке подключения ?

0 голосов
/ 19 сентября 2009

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

0 голосов
/ 04 августа 2009

Не можете ли вы увеличить ConnectionTimeout SQLCOnnection, используемого для заполнения набора данных?

т.е. SQlConnection.ConnectionTimeout = somevalue

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...