c # WinForms ReportViewer Производительность проблема с использованием RefreshReport () и ServerReport.SetParameters () - PullRequest
2 голосов
/ 16 февраля 2010

В настоящее время я пишу клиентское приложение c #, которое использует элемент управления WinForms ReportViewer для отображения отчетов с удаленного сервера.

У меня проблемы с производительностью элемента управления ReportViewer, а точнее с двумя методами reportViewer.ServerReport.SetParameters () и reportViewer.RefreshReport () - они оба принимают очень много времени для завершения и не только при первом вызове , но и при каждом последующем вызове. SetParameters () занимает от 20 до 40 секунд (они сильно различаются по времени, некоторые быстро исполняют событие), а RefreshReport () немного быстрее, но все еще занимает много времени.

Я не думаю, что сервер является виновником, так как тот же отчет просмотр в браузере довольно быстро выводит , с точностью до секунды.

Рассматриваемый отчет также не имеет значения.

Когда я врываюсь в процесс и смотрю на стек вызовов, я вижу вызов Socket.DoConnect.
Поэтому я подумал, что это хорошая причина, чтобы начать использовать fiddler, и я установил его, отключил кэширование и снова запустил приложение, чтобы увидеть, какой вызов занимает столько времени для подключения, но проблема с производительностью исчезла. При использовании прокси у меня такая же производительность, как и у веб-браузера.

К вашему сведению: я использую проверку подлинности NTLM следующим образом: reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = new NetworkCredentials () {Имя пользователя = ...}

У меня нет сильного веб-фона, поэтому я думаю, что мой вопрос: Что это должно сказать мне / Что я должен изучать? (Кстати: добавление fiddler в мой установочный пакет не является решением, которое я ищу :))

Я благодарен за любые указатели.

Береги себя,
-Martin

1 Ответ

2 голосов
/ 18 марта 2010

Перезапуск сервера устранил проблему как минимум на несколько дней.

Я заметил некоторые ошибки в журнале событий на сервере, и IIS Management Console потребовалось много времени для запуска и не смог подключиться клокальный iis, поэтому я искал в Интернете и нашел http://support.microsoft.com/?id=946517, который соответствовал ошибкам в журнале событий.

После запроса и установки исправления ошибки, описанные в статье kb, исчезли, и с тех поротчеты обычно загружаются как в программе просмотра отчетов, так и в браузере.

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

...