Je suis en train de modifier un document de mot de VB.NET en utilisant pour la plupart ce code:Récupération de l'usine de classe COM d'erreur composant tout en générant un document Word
Comment automatiser Word à partir de Visual Basic .NET créer un nouveau document http://support.microsoft.com/kb/316383
Cela fonctionne très bien sur ma machine mais lorsque je publie sur le serveur, j'obtiens l'erreur suivante.
Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005.
L'erreur réelle se produit lorsque je tente de créer simplement un objet d'application de mot
Dim oWord As New Word.Application
l'aide de Visual Studio 2008 et 3.5 VB.NET. J'ai fait une référence à la "Bibliothèque d'objets Microsoft Word 10.0" et je vois le fichier Interop.Word.dll dans le répertoire bin.
Utilisation de MS Office 2003 sur la machine de développement et Windows Server 2003
encore assez nouveau pour .NET et n'ont pas beaucoup de connaissances sur le serveur de la fenêtre, mais « UnauthorizedAccessException » sonne comme un problème d'autorisation. Je me demande si quelqu'un pourrait me diriger dans la bonne direction sur ce que je pourrais devoir faire pour donner à ma petite application l'accès à utiliser le mot.
Assez intéressant quand je me suis connecté au système et couru Word, il a couru l'installateur. Je suppose que personne n'a jamais entendu parler de cet utilisateur. Cela n'a pas résolu mon problème, mais je me demandais même sans le problème d'autorisation si cela l'empêchait de fonctionner. Mon code n'est pas une application Web. Bien que ce soit une petite application rarement utilisée, je n'ai jamais considéré ce qui se passerait si deux personnes essayaient de l'exécuter en même temps. Merci pour cette entrée. Existe-t-il un moyen de voir si un autre utilisateur accède à l'objet COM? Je suis sûr que rien d'autre n'est mais je ne sais même pas où vérifier cela. – TheDPQ
L'application Web s'exécute en tant que utilisateur? Dans IIS 7 par exemple, le pool d'applications s'exécutera en tant que système local, ce qui aura probablement le même problème. –
Encore une fois excusez mon ignorance, mais est-ce que "Network Service" de ce que vous parlez? C'est l'identité que le pool d'applications est configuré pour utiliser. – TheDPQ