2010-02-16 2 views
2

Actuellement, j'écris une application client C# qui utilise le contrôle WinForms ReportViewer pour afficher les rapports d'un serveur distant.C# WinForms ReportViewer Problème de performance avec RefreshReport() et ServerReport.SetParameters()

J'ai des problèmes de performance avec le contrôle ReportViewer, pour être précis avec les 2 méthodes reportViewer.ServerReport.SetParameters() et reportViewer.RefreshReport() - ils ont tous deux prennent vraiment beaucoup de temps pour compléter et pas seulement sur le premier appel, mais sur chaque appel ultérieur aussi bien. SetParameters() prend 20 à 40 secondes (ils varient beaucoup dans le temps, certains exécutent l'événement très rapidement) et RefreshReport() est un peu plus rapide mais prend encore beaucoup de temps.

Je ne pense pas que le serveur est le coupable, comme le même rapport vu en utilisant le navigateur rend assez rapide, autour d'un deuxième sommet.

Le rapport en question n'a pas non plus d'importance.

Lorsque j'entre dans le processus et que je regarde la pile d'appels, je vois un appel à Socket.DoConnect.
Alors j'ai pensé que c'était une bonne raison de commencer à utiliser fiddler et je l'ai installé, désactivé la mise en cache et redémarré l'application pour voir quel appel prend autant de temps pour se connecter, mais le problème de performance était parti. En utilisant un proxy, j'ai la même performance que le webbrowser.

FYI: J'utilise l'authentification NTLM de la manière suivante: reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = new NetworkCredentials() {...} Nom d'utilisateur =

Je n'ai pas une forte webbackground, donc je devinez ma question est: Qu'est-ce que cela devrait me dire/Que dois-je regarder? (Btw: Ajouter un violoniste à mon package d'installation n'est pas la solution que je recherche :))

Je suis reconnaissant pour les pointeurs.

Prenez soin,
-Martin

+0

Ai-je raté quelque chose? S'il y a quelque chose de flou, je me ferai un plaisir d'élaborer. – mdk

Répondre

2

redémarrant le serveur résolu le problème pendant quelques jours au moins. J'ai remarqué quelques erreurs dans le journal des événements sur le serveur et la console de gestion IIS a mis du temps à démarrer et n'a pas pu se connecter à l'iis local. J'ai donc recherché sur le Web et trouvé http://support.microsoft.com/?id=946517 qui correspondait aux erreurs dans le journal des événements.

Après avoir demandé et installé le correctif, les erreurs décrites dans l'article kb ont disparu et depuis lors, les rapports se chargent normalement dans le visualiseur de rapports ainsi que dans le navigateur.

Je ne sais pas exactement quelles sont les différences exactes entre le compte-rendu et le navigateur, mais je n'ai pas encore rencontré le problème.

Questions connexes