В настоящее время я пишу клиентское приложение 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