J'essaie de modifier un document Word de vb.net en utilisant la plupart de ce code:
Comment automatiser le mot à partir de Visual Basic .NET Pour créer un nouveau document Strong>
http://support.microsoft.com/kb/316383 P> Cela fonctionne bien sur ma machine, mais quand je publie sur le serveur, j'obtiens l'erreur suivante. P> Récupération de l'usine de classe COM pour
composant avec clside
{000201FF-0000-0000-C000-000000000046}
Échec du fait de l'erreur suivante:
80070005. P>
Détails d'exception: strong> System.UnauthorizedAccessException:
Récupérer l'usine de classe COM pour
composant avec clside
{000201FF-0000-0000-C000-000000000046}
Échec du fait de l'erreur suivante:
80070005. P>
blockQuote> L'erreur réelle se produit lorsque j'essaie de simplement créer un objet d'application Word p> à l'aide de Visual Studio 2008 et VB.NET 3.5. J'ai fait référence à la "bibliothèque d'objets Microsoft Word 10.0" et je vois un fichier interop.word.dll dans le répertoire bin. P> Utilisation de MS Office 2003 sur la machine de développement et Windows Server 2003 P> Toujours assez nouveau à .net et ne possédez pas beaucoup de connaissances sur le serveur de fenêtres, mais "non autoriséAccessException" sonne comme une autorisation problème. Je me demande si quelqu'un pouvait me signaler dans la bonne direction sur ce que je pourrais avoir besoin de faire pour donner mon petit accès aux applications à utiliser Word. p> p>
8 Réponses :
Cela sonne définitivement comme un problème d'autorisations. Exécutez votre code dans un service Windows? Le service exécute normalement en tant que système local, qui peut ne pas avoir la permission d'accéder au modèle d'objet Word. De plus, si Word fonctionne déjà en utilisant les informations d'identification d'un autre utilisateur, votre programme peut ne pas être en mesure d'y accéder via COM à l'aide de différentes informations d'identification. Les applications de bureau ont tendance à être une instance unique qui semble exacerber ce problème. P>
Assez intéressant lorsque je me suis connecté au système et j'ai couru le mot, il a dirigé l'installateur. Je suppose que personne n'a couru mot avant sur cet utilisateur. Cela n'a pas résolu mon problème, mais je me demande même avec la question de l'autorisation si cela l'aurait empêché de travailler. Non Mon code est une application Web. Bien que ce soit une petite application rarement utilisée, je n'ai jamais envisagé ce qui se passerait si deux personnes ont essayé de l'exécuter en même temps.Merci de cette contribution. Y a-t-il un moyen de voir si quelqu'un d'autre accède à l'objet COM? Je suis à peu près sûr que rien d'autre n'est que je ne saurais même pas où vérifier cela.
L'application Web fonctionne comme quel utilisateur? Dans IIS 7 Par exemple, le pool d'applications sera exécuté en tant que système local qui aura probablement le même problème.
Encore une fois, excusez mon ignorance mais est «Service de réseau» de ce dont vous parlez? C'est l'identité que le pool d'applications est prêt à utiliser.
Oui, il y a deux utilisateurs bien connus que les services fonctionnent généralement comme. Le système local est un identifiant à faible caractère privilégié qui est normalement utilisé par des services qui ne fournissent pas de services au réseau. Le service réseau est utilisé par des services qui font
Vous pouvez essayer de configurer le pool d'applications pour utiliser vos informations d'identification à la place.
J'ai ajouté
Je me suis connecté au serveur comme moi-même, dirigé l'application Web, et il a surgi de bizarre Windows Live chose et quand je frappe "Continuer", il a réellement lancé mot, mais m'a donné l'erreur ASP.NET "La méthode Ajouter ou la propriété n'est pas. disponible car la licence d'utilisation de cette application a expiré ". HAHA Le bureau sur le serveur n'a jamais été activé ... et je viens de réaliser que je dispose de Word 2002 (MS 10) et le serveur a 2003 (MS 11) ... Je vais examiner ces deux problèmes.
On dirait que vous pouvez avoir une question de permission dans DCOM. Essayez d'éditer les autorisations de mots dans DCOM Config. P>
Trouvé quelques personnes référencées blog.crowe.co.nz/archive /2006/03/02/589.aspx mais c'est pour Excel. N'a pas aidé, l'erreur est identique, mais le numéro d'erreur a changé de modification de: 80080005. System.RunTIME.Interopservices.ComeXception au lieu de System.UnauthorizeCessException
Cela semble être ce que vous vivez. P>
http: / /social.msdn.microsoft.com/forums/en-us/netfxbcl/thread/006cbac-101A-40A-AE16-D59A7A2DA8B1 P>
Je connais le même problème et que l'espace problématique que j'ai trouvé était
J'ai eu le même problème sur Windows 2008 R2. Fini par utiliser ce post: http: // social. msdn.microsoft.com/forums/en-us/netfx64bit/Torthread/65A355CE-49C1-47F1-8C12-D9CF5F23C53E P>
puis modifiant l'utilisateur de l'identité d'impersonisation dans web.config vers un autre utilisateur pour le résoudre. p>
Je suis sûr qu'il y a une combinaison de solutions. P>
aller à start -> courir fort>
Tapez
- Éditeur de registre em> sera ouvert.
aller au registre hkey_classes_root \ word.application strong>
Sélectionnez Word.Application Strong> et définissez la permission totale aux utilisateurs ci-dessous: -
administrateur, administrateurs, service local, système, service, interactif et utilisateurs. P>
Dans mon cas, Word fonctionne via un service Windows sous un compte de service. P>
Le problème était que le dossier de bureau n'existait pas dans L'ajout de cela résolvé le problème pour moi. P> C: \ windows \ system32 \ config \ systemprofile code> (ou dans
c: \ windows \ syswow64 config \ systemprofile code>). p>
J'ai eu le même problème tout en générant du document Word. La question que j'ai résolue en vérifiant le gestionnaire de tâches et en mettant fin à l'exécution actuellement en cours d'exécution Winworkworkworkwork, puis exécuté mon code à nouveau. La question a disparu. p>