Considérations sur l'automatisation côté serveur de Microsoft Office
Ancien nº de publication de cet article : F257757 SommaireRésumé Les développeurs peuvent recourir à l'automatisation dans Microsoft Office pour créer des solutions personnalisées qui tirent profit des capacités et fonctionnalités intégrées dans le produit Office. Toutefois, si ce type de développement par programmation peut être implémenté relativement facilement sur un système client, un certain nombre de complications peuvent apparaître lorsque l'automatisation s'exécute à partir d'un code côté serveur tel que Microsoft ASP (Active Server Pages), DCOM ou un service Windows NT. Cet article décrit les complications auxquelles les développeurs peuvent être confrontés, offre des alternatives à l'automatisation susceptibles d'accélérer les performances et suggère des étapes de configuration d'Office si l'automatisation côté serveur est incontournable. Toutefois, les développeurs doivent savoir que les suggestions présentées ci-dessous sont offertes uniquement à titre d'information. Microsoft ne recommande pas et ne prend pas en charge l'automatisation côté serveur de Microsoft Office. Remarque Dans ce contexte, le terme « côté serveur » s'applique également à un code exécuté sur une station de travail Microsoft Windows NT ou Microsoft Windows 2000, à condition que la station Windows ne soit pas celle sur laquelle l'utilisateur a ouvert une session interactive. Par exemple, un code démarré par le Planificateur de tâches sous le compte SYSTEM est exécuté dans le même environnement qu'un code ASP ou DCOM « côté serveur » et est donc confronté pour la plupart aux mêmes problèmes. Pour plus d'informations sur les stations Windows et COM, reportez-vous aux sections « Plus d'informations » et « Références ». Plus d'informations Toutes les versions actuelles de Microsoft Office ont été conçues, testées et configurées pour être exécutées par l'utilisateur final sur une station de travail cliente. Elles requièrent un Bureau interactif et un profil utilisateur et n'offrent pas le niveau de sécurité ou de réentrée nécessaire pour répondre aux besoins des composants côté serveur conçus pour s'exécuter sans assistance. À l'heure actuelle, Microsoft ne recommande pas et ne prend pas en charge l'automatisation des applications Microsoft Office à partir d'une application ou d'un composant client non interactif et sans assistance (y compris ASP, DCOM et les services NT), car Office peut présenter un comportement instable ou entraîner un blocage lorsqu'il est exécuté dans ce type d'environnement. Si vous créez une solution fonctionnant dans un contexte côté serveur, vous devez dans la mesure du possible tenter de recourir à des composants ayant été conçus pour être exécutés sans assistance de manière fiable ou trouver des solutions de remplacement permettant à au moins une partie du code de s'exécuter côté client. Si vous choisissez d'utiliser une application Office à partir d'une solution côté serveur, vous pouvez constater qu'il lui manque de nombreuses capacités pour s'exécuter correctement et vous risquez de compromettre la stabilité de l'ensemble de votre solution. Problèmes liés à l'utilisation de l'automatisation côté serveur de Microsoft OfficeLes développeurs qui tentent d'utiliser Office dans une solution côté serveur doivent tenir compte de cinq éléments majeurs pour lesquels l'environnement entraîne un comportement imprévu d'Office. Si vous souhaitez exécuter votre code sans problème, ces situations doivent être corrigées et leurs effets minimisés autant que possible. Lorsque vous créez votre application, examinez ces problèmes avec la plus grande attention car il n'existe pas de solution globale capable de tous les traiter. Chaque type de conception vous oblige à les hiérarchiser différemment.
Outre ces problèmes majeurs, de nombreux clients constatent que, sans modifier leurs paramètres d'installation par défaut d'Office, l'un des messages d'erreur suivants peut s'afficher lorsqu'ils tentent d'automatiser l'application côté serveur :
Utilisation de solutions alternatives à l'automatisation lors de l'exécution côté serveurMicrosoft recommande vivement aux développeurs de trouver d'autres méthodes que l'automatisation d'Office s'ils doivent élaborer des solutions côté serveur. En raison des limitations liées à la conception d'Office, tous les problèmes ne peuvent être résolus en modifiant sa configuration. Microsoft recommande un certain nombre de méthodes alternatives qui ne requièrent pas l'installation côté serveur d'Office et qui peuvent effectuer les tâches les plus courantes plus rapidement et de manière plus efficace que l'automatisation. Avant d'inclure Office en tant que composant côté serveur dans votre projet, envisagez d'autres solutions.La plupart des tâches d'automatisation côté serveur impliquent la création de documents. Étant donné qu'Office 2000 et versions ultérieures prennent en charge HTML comme format de document natif, la plupart des documents peuvent être créés en HTML, en utilisant le cas échéant des balises XML (Extensible Markup Language). Ils peuvent ensuite être transmis à un client à l'aide d'un type MIME (Multipurpose Internet Mail Extensions) en vue d'afficher le texte résultant dans Office. Le document peut être modifié, enregistré et même renvoyé au serveur si nécessaire, en utilisant simplement ASP sur le serveur. Dans les versions d'Office antérieures, d'autres formats de texte faciles à manipuler (tels que RTF) peuvent être utilisés aux mêmes fins. Certains formats binaires natifs peuvent être modifiés à l'aide de composants OWC (Office Web Components) ou de ADO (ActiveX Data Objects) avec une rapidité et une souplesse supérieures. Les propriétés de documents peuvent être affichées et modifiées sans avoir recours à l'automatisation. Par ailleurs, la gestion des fichiers et le contrôle des versions peuvent s'effectuer à l'aide des extensions serveur FrontPage (FPSE) ou du protocole DAV (Distributed Authoring and Versioning). Lorsque l'automatisation est incontournable, la plupart des tâches peuvent être déléguées au client, ce qui améliore la stabilité et l'évolutivité du système dans la mesure où chaque utilisateur exécute la tâche dans son propre contexte, avec ses propres paramètres. Pour plus d'informations sur ces rubriques et pour consulter des exemples de leur implémentation, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft. 270906 (http://support.microsoft.com/kb/270906/)
Comment faire pour utiliser ASP pour générer un document RTF (Rich Text Format) à diffuser dans Microsoft Word
198703 (http://support.microsoft.com/kb/198703/)
Comment faire pour automatiser Excel à partir d'un script VBScript côté client
199841 (http://support.microsoft.com/kb/199841/)
Comment faire pour afficher des résultats ASP à l'aide d'Excel dans Internet Explorer avec des types MIME
224351 (http://support.microsoft.com/kb/224351/)
Dsofile.dll vous permet de modifier les propriétés d'un document Office sans Office dans Visual Basic .NET 2003 et dans Visual Basic .NET 2002
244049 (http://support.microsoft.com/kb/244049/)
Comment faire pour utiliser la conception de graphiques côté serveur pour générer des graphiques de manière dynamique
258187 (http://support.microsoft.com/kb/258187/)
OWebComp.exe contient des exemples de script pour Office 2000 Web Components
260239 (http://support.microsoft.com/kb/260239/)
Comment faire pour mettre en forme des données de cellule lors de la création d'un fichier Excel avec une page ASP (Active Server Pages)
278973 (http://support.microsoft.com/kb/278973/)
ExcelADO montre comment utiliser ADO pour lire et écrire des données dans des classeurs Excel
286023 (http://support.microsoft.com/kb/286023/)
Comment faire pour utiliser un composant ActiveX Visual Basic pour l'automatisation de Word à partir d'Internet Explorer
288130 (http://support.microsoft.com/kb/288130/)
Comment faire pour utiliser ASP pour créer une feuille de calcul XML à afficher côté client
317316 (http://support.microsoft.com/kb/317316/)
Limitations des composants Web Office 2000 lors de leur utilisation côté serveur
Si votre activité nécessite la création côté serveur de fichiers Office binaires, il existe des fournisseurs tiers proposant des composants qui peuvent vous aider. La liste ci-dessous répertorie certains fournisseurs réputés offrant ces services. La liste n'est fournie qu'à titre indicatif. Elle n'est pas exclusive. Il se peut que d'autres fournisseurs assurent des services similaires mieux adaptés à vos besoins. Vous devez examiner toutes les solutions tierces disponibles afin de choisir le fournisseur qui répond le mieux aux impératifs de votre activité. Les fournisseurs ci-dessous proposent certaines solutions qui autorisent la création et la modification par programme de formats de fichiers Office natifs.
Pour plus d'informations (en anglais) sur les fournisseurs tiers, reportez-vous à leurs sites Web aux adresses suivantes : Aia Software B.V. http://www.aia-itp.com (http://www.aia-itp.com) Polar
http://www.polarsoftware.com (http://www.polarsoftware.com)
SoftArtisans
http://www.softartisans.com (http://www.softartisans.com)
SyncFusion
http://www.syncfusion.com (http://www.syncfusion.com) Keylogix http://www.activedocs.com (http://www.activedocs.com)
Les produits tiers mentionnés dans le présent article proviennent de sociétés indépendantes de Microsoft. Microsoft exclut toute garantie, implicite ou autre, concernant les performances ou la fiabilité de ces produits.
Configuration d'Office pour une exécution côté serveurSi aucune autre solution ne convient et que vous décidez de procéder à l'automatisation d'Office côté serveur, vous devez résoudre une grande partie des problèmes répertoriés plus haut pour mener à bien l'exécution dans ce type d'environnement. La plupart des problèmes étant liés à la configuration, il est impossible de fournir un ensemble de procédures qui permettraient à l'automatisation d'Office de fonctionner côté serveur dans toutes les situations et sur tous les systèmes. Certains paramètres de configuration peuvent entrer en conflit avec d'autres options et chaque approche présente des avantages et des inconvénients. Vous devrez peut-être procéder à des essais pour rechercher la configuration la plus adaptée à votre environnement.Pour automatiser Office à partir d'un code côté serveur, vous devez généralement procéder comme suit :
La première étape consiste donc à limiter l'utilisation de l'automatisation d'Office dans votre conception côté serveur et à isoler le processus sur un ordinateur ne contenant aucune donnée vitale et pouvant être redémarré le cas échéant. Isolez également le contexte appelant, de sorte que le blocage d'un client appelant n'affaiblisse pas les performances d'un service essentiel du système. Par exemple, n'effectuez pas l'automatisation directement à partir des services Internet (IIS) à l'aide d'un thread système ; isolez plutôt le code pour qu'il s'exécute sur son propre thread. Ainsi, en cas d'échec, il n'affecte pas les fonctionnalités globales des services Internet. Par ailleurs, réfléchissez à la manière dont votre conception met en oeuvre la sécurité et l'authentification. Étant donné qu'Office n'assure pas la sécurité côté serveur, votre code doit garantir que seuls les modules de code « approuvés » tels que les pages ASP, les fichiers de script etc. peuvent créer une instance d'automatisation d'une application Office et appeler ses méthodes. Le code doit également s'assurer que tous les documents sont sécurisés avant que vous ne demandiez à Office de les ouvrir. Les applications Office installées sur un serveur doivent toujours être exécutées avec un niveau élevé de sécurité. Si votre conception ne garantit pas la sécurité, vous faites courir des risques à votre serveur ! Lorsque la conception est en place, vous devez créer des codes défensifs pour tenter de prévenir l'apparition de problèmes et gérer les erreurs lorsqu'elles se présentent. Vérifiez que votre code passe des valeurs pour les paramètres facultatifs, car des valeurs manquantes ou contradictoires peuvent parfois obliger Office à demander à l'utilisateur de lui fournir d'autres informations. Utilisez la récupération d'erreur pour traiter progressivement les anomalies et consignez-les à l'aide d'un code de journalisation pouvant être activé ou désactivé par un paramètre personnalisé (dans le Registre ou le fichier INI). Si vous exécutez une action susceptible de provoquer l'affichage d'une boîte de dialogue d'erreur indépendante d'Office (par exemple, le pilote d'imprimante peut afficher une boîte de dialogue si l'imprimante manque de papier), soyez prêt à gérer d'éventuels blocages en recourant à un délai d'attente ou à un deuxième thread afin de contrôler la progression. Pour plus d'informations, reportez-vous à l'article suivant dans la Base de connaissances Microsoft : 259971 (http://support.microsoft.com/kb/259971/)
Comment faire pour faire disparaître une boîte de dialogue affichée par une application Office à l'aide de Visual Basic
Utilisez votre code de journalisation pour rechercher les problèmes et déboguer votre programme. Si vous utilisez un pool d'objets personnalisés, vous pouvez ajouter des tests de performance et d'évolutivité afin de contrôler les problèmes d'usage et enregistrer les problèmes qui affectent tous les clients. Un contrôleur central peut également vous permettre de fermer les instances errantes d'Office et, le cas échéant, de les recréer pour renforcer la stabilité globale. Lorsque le programme est prêt à être déployé, vérifiez qu'Office est configuré correctement sur le serveur pour pouvoir exécuter un contexte utilisateur approprié. Office nécessitant un profil utilisateur, pour exécuter l'automatisation vous devez inclure un profil lors du chargement. Pour ce faire, vous disposez de trois options dans un environnement côté serveur :
288366 (http://support.microsoft.com/kb/288366/)
Comment faire pour configurer les applications Office pour qu'elles s'exécutent sous le compte d'utilisateur interactif
La deuxième option attribue un utilisateur spécifique, mais ne permet pas l'interactivité. Office démarre en tant qu'utilisateur assigné dans une nouvelle station Windows sur un Bureau invisible. Cette option nécessite des procédures de configuration supplémentaires pour garantir le chargement de la ruche du Registre utilisateur, car COM/DCOM ne s'en charge pas par défaut. Le paramètre s'applique à l'ensemble du système et peut donc entrer en conflit avec d'autres programmes. Pour plus d'informations sur ce mode de configuration d'Office, reportez-vous à l'article suivant dans la Base de connaissances de Microsoft :
288367 (http://support.microsoft.com/kb/288367/)
Comment faire pour configurer les applications Office pour qu'elles s'exécutent sous un compte d'utilisateur spécifique
La troisième option vous permet d'attribuer une identité à un site Web ou à un module de code spécifique et vous évite de définir une identité fixe globale pour Office. Office s'exécute sous cette identité et se charge correctement si l'identité a été préalablement configurée pour cet ordinateur et que la ruche du Registre a été chargée. Cette option est généralement la plus souple et la plus sécurisée mais, comme l'option précédente, elle n'offre pas l'interactivité par le biais d'un Bureau visible et requiert une configuration complémentaire. Pour plus d'informations sur ce mode de configuration d'Office, reportez-vous à l'article suivant dans la Base de connaissances de Microsoft :
288368 (http://support.microsoft.com/kb/288368/)
Comment faire pour configurer l'automation des applications Office à partir d'un lot COM+/MTS
Vous devez évaluer laquelle des options ci-dessus est adaptée à vos besoins et réfléchir à la meilleure méthode pour déployer votre solution. Nous ne pouvons pas garantir que les informations présentées ici pourront résoudre tous les problèmes pour tous les clients. Nous vous encourageons à procéder à des tests approfondis avant de commencer le déploiement. Références Pour plus d'informations sur l'automatisation côté serveur, reportez-vous aux articles suivants dans la Base de connaissances Microsoft :
169321 (http://support.microsoft.com/kb/169321/)
Activation des serveurs COM et des stations Windows NT
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT. | Traductions disponibles
|

Retour au début
