Piloter Word depuis une page aspx qui se trouve sur un server

Max207 Messages postés 19 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 17 octobre 2008 - 23 sept. 2008 à 13:23
Max207 Messages postés 19 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 17 octobre 2008 - 25 sept. 2008 à 08:47
Bonjour à tous,

On m'a confié un projet à mon boulot qui est une migration d'une application existante (VB) en application ASP.NET&C# sur un server (windows 2003).

L'application existante était sous forme d'exécutable qui était installée chez les machines clientes de la boite. L'application permettait, entre autre, de jouer avec Word (ouvrir un document et l'imprimer ou l'imprimer page par page en sélectionnant divers imprimantes pour créer des pdf et des fichier TIFF) tout cela de façon transparente (Word Visible=False).

En C#, je sais comment piloter Word et effectuer les opérations que j'ai décrite plus haut. Cela fonctionne bien mais pour l'instant je travaille sur ma machine locale. J'ai donc une page qui va ouvrir Word ou imprimer un document Word en le pilotant (file>print>etc) à partir d'un clic sur un bouton de ma page. Cependant, j'ai placé mon projet sur le server et là, ça ne fonctionne plus.

Premièrement j'ai ce message d'erreur lorsque je veux utiliser l'objet Word:

System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM
class factory for component with CLSID {000209FF-0000-0000-C000-000000000046}
failed due to the following error: 80040154

Ce qui me fait dire que le package COM de Word (qui permet de faire référence à celui-ci) n'est pas installé sur le server bien que m'a DLL soit référencée et intégrée dans mon projet mais ça ne fonctionne pas. Il va sans doute falloir commander une licence Office à mettre sur le server pour mon projet. Mon raisonnement vous parait-il plausible? Car je suis totalement novice sur ce coup là.

Ma principale question est celle-ci:
Lorsqu'on lance Word à partir d'une page aspx qui se trouve sur un server, est-ce le Word de la machine cliente qui s'exécute ou bien le Word se trouvant sur le server?

Merci d'avance pour vos éventuelles réponses,

Max.

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
23 sept. 2008 à 19:37
Salut,

C'est le word de ton serveur car ton client pourrait ne pas avoir de word (exemple un linux)

Tu peux piloter le word de ton serveur et apres télécharger le document word créeer sur le serveur(je n'ai jamais testé)

Il est peut etre possible de  piloter par activex et modifier le niveau de sécurité de ton client mais c'est pas conseillé.

Bon courage
0
yassinebennani Messages postés 249 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 2 mai 2014
23 sept. 2008 à 19:50
Bonjour

la réponse à ta question est "Sur serveur" le word est exécuté sur serveur puisque la dll qui est référencée est aussi sur serveur je pense que t'a tombé dans ce qu'on appel à l'époque l'enfer des DLLs puisque je vois que tu utilise les COMs donc tu dois faire attention à l'intéroperabilité de ton application et au déplacement des dlls car cela crée des conflits bizzard renseigne toi sur ça.

Les fins justifient les moyens_________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)
0
Max207 Messages postés 19 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 17 octobre 2008
25 sept. 2008 à 08:47
J'y vois un peu plus claire maintenant. Après avoir fait le tour de différents articles sur le sujet, il s'avère qu'au final cette méthode de procéder est fort peu conseillée. Seulement dans mon cas, j'ai un réel besoin de piloter Word afin de passer des impressions. Utiliser les COM de l'Office sur le server c'est vraiment pas l'idéal. Je suis donc à la recherche d'une autre solution qui implique l'ouverture du Word et la machine cliente, le souci reste que cela doit être déclenché a partir d'une WebApplication sur le serveur ...

J'ai eu une idée mais elle n'est pas réalisable question sécurité: Je voulais placer sur les machines clientes une petit executable de ma création qui aurait pour but de piloter et d'imprimer les doc Word. Cet exécutable serait lancé depuis le Website mais le problème est qu'il n'est pas possible, apparament, de lancer un exe localisé sur une machine cliente depuis un Website (ce qui est normal).

J'ai maintenant une seconde idée: Lancer un exécutable depuis le Website (qui se trouve sur le server), cet exécutable se trouvera également sur le server et il sera utilisé en tant que "pont" vers l'exécutable localisé sur la machine qui lui sera chargé de piloter Word. Est-ce que cette solution vous paraît viable?
0
Rejoignez-nous