none
Service windows & imprimantes partagées RRS feed

  • Question

  • Bonjour,

    Je suis en train de développer un service d'impression afin de centraliser les impressions pour mon produit. Ce service imprime, trace et dispatch sur plusieurs imprimantes, il fonctionne très bien lorsque les imprimantes sont déclarées en local mais j'ai une erreur "Le serveur RPC n'est pas disponible" lors que j'essaye d'imprimer sur une imprimante partagée.

    Mon service est déclaré comme connecté en tant qu'utilisateur avec les mêmes ID de connexion que ceux de ma session windows. Lorsque j'essaye d'imprimer avec une application Win32 tout va bien. Il voit bien l'imprimante dans les InstalledPrinters, envoit bien l'impression et imprime bien. Avec le service, je vois bien mon imprimante dans InstalledPrinters, mais lorsque j'envoi l'impression, j'ai l'erreur "Le serveur RPC n'est pas disponible".

    J'ai cherché depuis plusieurs jours des solutions, mais a part un soucis similaire avec l'ASP je n'ai rien. Certains parlent de la gestion du WMI mais j'ai peur que ce ne soit pas cela.

    Merci de bien vouloir m'aider.
    mardi 19 janvier 2010 10:33

Réponses

  • Alors, après plusieurs tests, j'ai fini par le faire fonctionner. En fait, je me suis rendu compte que mon utilisateur n'était explicitement connu sur le poste distant, je connecté bien mon imprimante mais en tant que User2. En créant mon User1 sur le poste distant, tout fonctionne.

    Le sujet est donc clos. Merci a tous d'avoir essayé de m'aider/

    • Proposé comme réponse nikhoModerator mardi 19 janvier 2010 13:28
    • Marqué comme réponse Audrey PETIT mardi 19 janvier 2010 16:02
    mardi 19 janvier 2010 13:08

Toutes les réponses

  • Bonjour,

    utilises tu les classes du namespace System.Drawing.Printing Namespace car la documentation indique qu'elle ne peuvent être utilisées dans un service :

    Classes within the System.Drawing.Printing namespace are not supported for use within a Windows service or ASP.NET application or service. Attempting to use these classes from within one of these application types may produce unexpected problems, such as diminished service performance and run-time exceptions.
    mardi 19 janvier 2010 10:47
    Modérateur
  • Bonjour et merci de répondre,

    Alors, initialement, il s'agit d'une impression acrobat reader, mais pour les tests, j'en suis arrivé a utiliser la classe PrintDocument.Print(). Mais comme je dis, avec une imprimante local, cela fonctionne, donc le soucis ne vient pas du PrintDocument mais bien du fait qu'il s'agit d'une imprimante partagée. Je me demande si je ne dois pas me connecter avec des droits, des dépendances différentes mais je ne sais pas quoi.

    J'imagine quand même qu'il est possible de créer un service windows sachant imprimer sur toutes les imprimantes connues du compte utilisateur avec lequel il se connecte.
    mardi 19 janvier 2010 10:55
  • Bonjour,

    Vous utilisez quel compte pour votre Service Process Installer ?

    Cordialement,

    Mathieu


    Mathieu Francesch Sharplog Engineering
    mardi 19 janvier 2010 11:38
  • Alors, après plusieurs tests, j'ai fini par le faire fonctionner. En fait, je me suis rendu compte que mon utilisateur n'était explicitement connu sur le poste distant, je connecté bien mon imprimante mais en tant que User2. En créant mon User1 sur le poste distant, tout fonctionne.

    Le sujet est donc clos. Merci a tous d'avoir essayé de m'aider/

    • Proposé comme réponse nikhoModerator mardi 19 janvier 2010 13:28
    • Marqué comme réponse Audrey PETIT mardi 19 janvier 2010 16:02
    mardi 19 janvier 2010 13:08