IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Erreur COM sur un ReportViewer [Débutant]


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    juillet 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2012
    Messages : 32
    Points : 37
    Points
    37
    Par défaut Erreur COM sur un ReportViewer
    Bonjour tout le monde,
    Depuis ce matin j'ai un problème avec un ReportViewer. Mon programme sert à imprimer des étiquettes sous trois formats qu'on appelle ETI9, ETI9-1 et VDA. Je dispose pour chaque format, d'un Report avec une dimension spécifique qui ne doit pas être dépassée, ni rétrécie. Ces Reports, contiennent chacun plus de 10 paramètres permettant d'afficher les informations souhaitées, et à un endroit bien déterminé sur l'étiquette.
    Le problème que j'ai, c'est que sur ces trois Reports, tous fonctionnent sans problème sur mon PC de développement (c'est à dire qu'ils s'affichent sans défauts sur le Reportviewer). En revanche, dès que je mets l'application sur les PC de production (l'application est sur le réseau et les modèles Report sont importés en local sur chaque PC de production), je n'ai uniquement le Report VDA qui fonctionne, les deux autres me génèrent une erreur générale, et donc bien sûre incompréhensible suivante :

    An error occurred during local report processing Error HRESULTE_FAIL has been returned from a call to a COM component.

    Je dois avouer que je ne comprends pas du tout pourquoi 2/3 Reports ne fonctionnent pas, alors que ça marche très bien sur le PC de développement.
    La seule piste que j'ai réussi à avoir c'est grâce au debugger JustInTime qui me donne la pile d'appel jusqu'à l'erreur (qui se trouve en pièce jointe). Pardonnez moi pour la mise en forme du fichier, c'était le seul moyen que j'avais pour récupérer la pile d'appel sur place.

    Si jamais vous avez une idée, elle est la bienvenue ! Merci

    image2014-05-06-134421.pdf

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : février 2010
    Messages : 3 611
    Points : 9 744
    Points
    9 744
    Billets dans le blog
    3
    Par défaut
    Ce genre d'erreur est difficile à résoudre ! Pistes :
    - Tes labels contiennent-ils des caractères spéciaux ?
    - As-tu correctement configuré la/les source de données ? Notamment au niveau des identifiants
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    juillet 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2012
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    Oui je confirme que générer une erreur pareille n'arrange pas les choses...
    Je peux te confirmer que les sources de données sont correctes, elle est la même entre le PC développeur et le PC industriel. Il n'y a donc pas de problème de ce côté là.
    De même pour les identifiants, il n'y a aucune raison qu'un Report fonctionne sur un PC mais pas les autres.
    La seule conclusion que je peux te faire c'est que les données et le passage des données dans le Report sont tout à fait correctes.
    Le problème doit venir d'autre part, et à ce que j'ai vu dans la pile d'appel de l'exception, c'est qu'il y a un problème sur le rendu du Report, sur le côté graphique.

    Voici le Report que j'ai créé pour une étiquette de type ETI9 et VDA
    Modele_Etiquette.zip

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : février 2010
    Messages : 3 611
    Points : 9 744
    Points
    9 744
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par BinKentsu Voir le message
    Je peux te confirmer que les sources de données sont correctes, elle est la même entre le PC développeur et le PC industriel. Il n'y a donc pas de problème de ce côté là.
    Juste pour être sûr et certain, as-tu envisagé d'éventuelles problématiques liées à l'authentification (rebonds, kerberos, SPN, etc.) ? Ces problématiques sont assez vicieuses et peut s'avérer difficiles à détecter et à corriger.

    As-tu regardé dans le journal de logs sur le serveur et/ou sur le PC industriel si tu n'avais pas des infos intéressantes ?

    Enfin, si le problème se situe côté graphique, ce que tu peux essayer de faire c'est de reconstruire ton rapport au fur et à mesure et le déployer à chaque étape pour voir si ça marche. Ca te permettra de cibler peut-être une valeur inattendue ou quelque chose du genre... Je n'ai certes pas inventé l'eau chaude en disant ça, mais bon je n'ai pas mieux à te proposer à ce stade
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    juillet 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2012
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    Comme dit, l'application tournait sur les PC depuis des mois et des mois sans problèmes. Ca me paraitrait assez louche qu'il y aurait des erreurs liées à l'authentification.

    Malheureusement le log me donne exactement la même chose sans plus de détail sur l'exception. J'ai un log automatique de toutes les exceptions dans les applications.

    J'espérais avoir une idée un peu moins longue à développer ^^ Comme tu as pu le voir, les rapports sont assez compliqués et volumineux, limite un casse tête
    Mais bon je n'ai pas d'autres choix on dirait, alors je vais essayer.
    Merci de tes conseils je te tiens au courant si jamais j'ai résolu ce problème.

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : février 2010
    Messages : 3 611
    Points : 9 744
    Points
    9 744
    Billets dans le blog
    3
    Par défaut
    Si tu lances une capture avec SQL Server Profiler, et que tu lance l'exécution d'un rapport, est-ce que tu vois la requête passer ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    juillet 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2012
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    Je n'ai pas les autorisations pour effectuer cette action sur le serveur.
    De toute façon les requêtes SQL passent sans soucis, la gestion SQL et Rapport est faite séparément, les résultats des requêtes sont stockés dans des structures, et en cas d'erreur, un message d'erreur est affiché. Ce sont les données des structures qui sont ensuite passées en paramètres au Rapport.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Apprenti
    Inscrit en
    juillet 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2012
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    J'ai enfin trouvé le problème que j'avais.
    Les modèles reports étaient stockés en local dans le répertoire AppData\Roaming de l'utilisateur.
    Suite à des changements dans la stratégie réseau de l'entreprise, ce répertoire n'avait plus les mêmes droits d'accès que nécessitait le reportViewer.
    J'ai donc déplacé mon répertoire de travail dans le répertoire AppData\Local\Temp qui est toujours disponible.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 14/09/2011, 16h35
  2. [VB6] Erreur 9 sur redim preserve
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/10/2002, 17h29
  3. Copier un .com sur le 1er secteur d'une disquette
    Par zdra dans le forum Assembleur
    Réponses: 5
    Dernier message: 23/08/2002, 18h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo