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

Windows Serveur Discussion :

Impression "fantome" en raw print


Sujet :

Windows Serveur

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Points : 486
    Points
    486
    Par défaut Impression "fantome" en raw print
    Bonjour,


    Je ne suis pas sûr que le problème soit lié à Windows Server (2012, en l'occurrence), mais voici presqu'une semaine que je bloque sur le sujet suivant : mes demandes d'impression n'aboutissent pas...

    J'adresse, par programme en .net, deux imprimantes : une Xeros et une Zebra. Dans les deux cas, il s'agit d'un raw print : pour la Xeros, je transmets les données brutes d'un PDF ; pour la Zebra, du code ZPL directement.
    Dans les deux cas, voici les seuls et mêmes symptômes, on peut apercevoir brièvement le passage des demandes d'impression dans le spooler, mais :
    - la taille des données transférées (qu'on aperçoit dans le spooler) est nulle ou bien inférieure à la taille des données d'origine (ça dépend des fois, je ne sais pas pourquoi ou bien ça s'affiche trop vite).
    - et, bien sûr, ça n'imprime pas

    Mon programme ne lève aucune exception.
    C'est du .net managé qui fonctionne très bien dans différents autres environnements (et y compris chez ce même client mais sur d'autres machines), mais pas ici. Extrait de code (pour donner le principe), c'est plutôt simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                        LocalPrintServer printServer = new LocalPrintServer();
    
                        PrintQueue printQueue = printServer.GetPrintQueue( printerName );
    
                        PrintSystemJobInfo job = printQueue.AddJob( jobName );
    
                        job.JobStream.Write( data, 0, data.Length );
                        job.JobStream.Close();
    (j'ai tenté des versions alternatives en spécifiant UsePrinter, comme 'DesiredAccess', ou autres, mais ça ne change rien).

    Aucune exception, rien dans l'observateur d'évènements, ... je n'ai aucune piste concrète...

    Pour info, le programme cible est un service Windows. Mais j'ai également fait un petit exe de test et même chose.

    Précisions qui me semblent importantes : j'imprime également d'autres documents sur la Xerox, mais via TechIt TFormer (donc en GDI ou qq chose comme ça) et là, ça fonctionne.


    Quelqu'un a-t-il des idées, ou des pistes ?

    Merci par avance...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Points : 486
    Points
    486
    Par défaut
    J'ai un peu avancé sur le sujet (et nous avons une solution de contournement), cependant je partage ici les infos, pour ceux que ca pourrait intéresser.

    La solution de contournement a été de relayer l'impression par un programme client installé en local sur un poste de travail. Ce poste voit les imprimantes en réseau (comme le serveur) mais lui parvient à imprimer.

    Nous avons donc transmis les documents à imprimer à ce programme local (netTcpBinding), depuis notre application sur le serveur.

    Dans un premier temps, cela n'a pas fonctionné : échec de la communication entre ce serveur et le poste client (donc bien avant l'impression). Mais, si l'appli serveur communique en utilisant l'IP du client plutot que son nom, ça fonctionne.
    Il y a donc un problème lié au DNS dans l'environnement ?
    Pourtant, on peut faire un ping depuis le serveur vers le nom de la machine cliente : le ping fonctionne...

    Tout ça n'explique pas l'échec des impressions lancées depuis des drivers installés en local sur le serveur... mais peut être est-ce lié ?


    Là aussi, si tout ça donne des idées à quelqu'un ou des pistes de recherche pour nous... je suis preneur !!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Points : 486
    Points
    486
    Par défaut
    Du nouveau :

    Sur un serveur Windows 2003 à 2008R2 les impressions fonctionnent tout à fait normalement : l'observateur d'événement les trace et les impressions sont ok.

    Par contre, sur 2012 R2, on a des traces dans l'observateur d'événements :
    "Le spouleur d'impression a échoué à supprimer le fichier c:\Windows\system32\spool\PRINTERS\00070.SHD, code d'erreur 0x2. Consultez les données utilisateur de l'événement pour des informations sur le contexte".

    Google semble ne rien retourner pour "Le spouleur d'impression a échoué à supprimer le fichier"...

    Pourquoi cette différence en 2012 R2 ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Points : 486
    Points
    486
    Par défaut
    bonsoir,


    Encore un complément.

    Aujourd'hui, le programme de test ne fonctionne plus : il plante en créant une erreur dans ntdll.dll. Cette erreur induit la fermeture du programme par Windows (pas possible de catcher une exception).

    Nous avions installé plusieurs variantes / versions de ce programme de test : toutes plantent maintenant avec l'erreur ci-dessus (alors que ça n'était pas le cas avant).

    J'ai tenté une compilation du programme en framework 4.5 (les précédentes étant en v4.0). Celle-ci a d'abord fonctionné normalement (même si elle n'imprime toujours pas), puis a finit par planter ntdll.dll elle aussi.

    C'est super bizarre : jamais vu un comportement comme celui-ci précédemment...

    Est-ce que l'environnement est endommagé ? Comment serait-il possible que cette petit appli provoque ça (on ne fait que communiquer le contenu d'un pdf à la file d'impression) ?

    Concernant ntdll.dll, je ne trouve rien sur Google, à part plein de sites (sauf celui de Microsoft) qui indiquent des problèmes et des téléchargements... je n'ai d'ailleurs pas trouvé une explication claire de ce qu'est cette dll, à quoi elle sert...

    : (

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Points : 486
    Points
    486
    Par défaut
    bon... on est passé en Windows Server 2008... problème résolu : (

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

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