J'ai développé un site Web qui permet aux utilisateurs de télécharger des documents Office, puis utilise le modèle d'objet Office pour convertir le document en un fichier HTML qu'il affiche ensuite dans un iFrame.
J'ai, bien sûr, inclus des références à Office.interop.Word, et le site fonctionne bien sur ma machine de développement. Lorsque je l'ai téléchargé sur mon serveur de production, le site fonctionne correctement jusqu'à ce que j'essaie de télécharger un document. J'ai d'abord eu une erreur similaire qui disait "Objet COM non enregistré". J'ai réalisé que Word n'était pas installé sur mon serveur de production. J'ai donc installé Word et maintenant lorsque le serveur essaie d'accéder au modèle d'objet Word, je reçois l'erreur suivante:
La récupération de la fabrique de classes COM pour le composant avec CLSID {000209FF-0000-0000-C000-000000000046} a échoué en raison de l'erreur suivante: 80070005 L'accès est refusé. (Exception de HRESULT: 0x80070005 (E_ACCESSDENIED))
J'ai recherché le CLSID correspondant dans le registre et trouvé un dossier correspondant. J'ai ajouté le contrôle total au compte IUSR_ et en raison de la persistance de l'erreur, j'ai finalement ajouté le contrôle total à "tout le monde" et assuré ces autorisations héritées jusqu'au reste du dossier. J'ai ensuite ajouté le contrôle total à IUSR_ et j'ai finalement ajouté le contrôle total à "tout le monde" dans mon dossier Microsoft Office.
I je ne sais pas quelles autres autorisations accorder et où, pour que cette erreur "Accès refusé" disparaisse. Je dois les accorder au mauvais endroit, car pour autant que je sache, je ne peut pas être plus permissif que "Tout le monde" "Contrôle total".
Quelqu'un peut-il nous éclairer?
Cela a fonctionné pour moi:
DCOMCNFG
mmc comexp.msc /32
au lieu de DCOMCNFG
à l'étape 1 comme suggéré par Darksealici )Ok, j'ai résolu ce problème avec ces étapes:
Ensuite, Excel, Word et d'autres applications peuvent fonctionner, bonne chance.
Regardez dans l'Observateur d'événements, sous Journaux Windows, Système, sur la machine serveur sur laquelle Word est installé. Voyez-vous un événement enregistré qui se lit quelque chose de similaire à:
Les paramètres d'autorisation par défaut de la machine n'accordent pas d'autorisation d'activation locale pour l'application COM Server avec CLSID {148BEE7F-6123-41EE-8CCA-E390902BD0D8} à l'utilisateur SomeMachine\SomeUser SID (S-1-5-21-483881670-2168941642- 1987552629-1003) à partir de l'adresse LocalHost (à l'aide de LRPC). Cette autorisation de sécurité peut être modifiée à l'aide de l'outil d'administration des services de composants.
Si c'est le cas, exécutez DCOMCNFG.EXE et accédez à Services de composants, Ordinateurs, Poste de travail (ou autre nom), DCOM Config (et vous pouvez simplement répondre "Non" s'il vous demande si vous souhaitez corriger quoi que ce soit) et si le journal des événements message est pour un application, puis recherchez-le par le nom dans le message du journal des événements, ici par nom d'élément, et si le message du journal des événements est pour un CLSID (comme l'exemple ci-dessus), puis recherchez-le par le CLSID "{148B ...}" (c'est juste un CLSID aléatoire que j'ai collé - il correspondra probablement à votre 000209FF ... ci-dessus), et sélectionnez Plus d'actions ... Propriétés, dans l'onglet Sécurité.
Ici, vous pouvez sélectionner [x] Personnaliser puis Modifier, pour ajouter l'autorisation pour le compte d'utilisateur approprié d'activer et d'accéder à l'application ou à la classe DCOM requise.
C'est juste une supposition, mais essayez, ou quelque chose du genre (c'est-à-dire accorder l'accès au CLSID via DCOMCNFG).
J'ai eu du mal à comprendre cela en utilisant la réponse acceptée, car l'enregistrement Microsoft Word 97 - 2003 Document n'était pas répertorié parmi les éléments de configuration DCOM. J'ai trouvé la solution dans cet article de blog Technet , où ils ont correctement expliqué le problème:
Il est important de noter que si vous installez Microsoft Office 32 bits sur une machine 64 bits, vous devrez peut-être utiliser le gestionnaire de configuration DCOM 32 bits pour afficher les programmes, selon votre système d'exploitation.
Sur les systèmes d'exploitation x64 à partir de Windows XP vers Windows Server 2008, la version 64 bits de DCOMCNFG.EXE ne configure pas correctement les applications DCOM 32 bits pour l'activation à distance. Ce comportement provoque des composants destinés à à activer à distance au lieu d'être activé localement. Ce problème ne se produit pas dans Windows 7 et Windows Server 2008 R2 et versions ultérieures.
Réf .: http://msdn.Microsoft.com/en-us/library/windows/desktop/ms678426 (v = vs.85) .aspx
Et également suggéré d'utiliser la commande de ligne de commande suivante (au lieu de DCOMCNFG
) comme correctif efficace:
mmc comexp.msc /32
Ce qui force le chargement du gestionnaire de configuration DCOM 32 bits au lieu de celui 64 bits et permet d'effectuer les étapes décrites dans la réponse acceptée. Si cela ne fonctionne toujours pas, l'article explique également un certain nombre d'autres solutions de contournement possibles.
Pour plus d'informations sur ce sujet, vous pouvez également lire cet article sur mon blog.
Si vous ne trouvez pas d'application Microsoft Word dans DCOM
Sur un système 64 bits avec Office 32 bits, essayez ceci:
après ça