Accès au Modèle D'objet Office Word via asp.net résultats en " échec en raison de l'erreur suivante: 80070005 L'accès est refusé."

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. Quand je l'ai téléchargé sur mon serveur de production, le site fonctionne bien 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é". Je 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 tente d'accéder au modèle objet word je reçois l'erreur suivante:

Récupération de L'usine de classe 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 cherché dans le registre le CLSID correspondant et j'ai 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 à nouveau finalement ajouté le contrôle total à "tout le monde" dans mon dossier microsoft office.

Je ne sais pas quelles autres autorisations accorder et où pour que cette erreur "Access is denied" disparaisse.{[4] } je dois accorder eux au mauvais endroit, parce que pour autant que je sache, je ne peux pas être plus permissif que "tout le monde" "Contrôle total".

Quelqu'un peut-il faire la lumière?

45
demandé sur John Saunders 2010-08-13 17:10:05

5 réponses

Cela a fonctionné pour moi:

  1. dans la ligne de commande Mettre DCOMCNFG
  2. services de composants - > Ordinateurs - > Poste de travail - > DCOM Config
  3. trouvez "document Microsoft Word 97-2003" (s'il est manquant, vérifiez si votre mot est également 64 bits (si votre Windows est) s'il N'est pas exécuté mmc comexp.msc /32 au lieu de DCOMCNFG à l'étape 1 comme suggéré par Darkseal ici)
  4. clic Droit -> Propriétés
  5. Allez dans L'onglet Sécurité et modifiez les boutons radio "personnaliser" pour que IIS_IUSRS pourrait avoir des droits de lancement et d'accès
  6. Allez dans L'onglet Identité et choisissez "l'utilisateur interactif"
  7. Appliquez les modifications et réessayez
  8. Si tout cela échoue, aller à l'onglet "Général" et "Niveau d'Authentification déroulant" choisissez "Aucune".
30
répondu gyosifov 2018-01-03 08:00:27

Ok, j'ai résolu ce problème avec ces étapes:

  1. dans la ligne de commande, mettez DCOMCNFG
  2. développez racine de la Console > service de composants > Ordinateurs, cliquez avec le bouton droit sur Poste de travail et sélectionnez Propriétés
  3. dans L'onglet Sécurité COM > autorisations de lancement et D'Activation, cliquez sur Modifier par défaut
  4. Ajouter L'utilisateur (ex. IIS_IUSRS) ou service
  5. cochez autoriser le lancement Local et L'Activation locale

Alors Excel, Word et d'autres applications peuvent fonctionner, bonne chance.

58
répondu sur97c 2014-02-17 18:46:16

Regardez dans L'Observateur D'événements, sous Windows Logs, System, sur la machine serveur sur laquelle Word est installé. Voyez-vous un événement enregistré qui lit quelque chose de similaire à:

L'autorisation par défaut de la machine les paramètres n'accordent pas L'Activation locale autorisation pour le serveur COM application avec CLSID {148BEE7F-6123-41EE-8CCA-E390902BD0D8} à L'utilisateur SomeMachine \ SomeUser SID (S-1-5-21-483881670-2168941642-1987552629-1003) de l'adresse LocalHost (en utilisant LRPC). Ce autorisation de sécurité peut être modifié à l'aide des Services de composants outil d'administration.

Si c'est le cas, lancez DCOMCNFG.EXE, et allez dans Component Services, Computers, My Computer (ou n'importe quel nom), DCOM Config (et vous pouvez simplement répondre "Non" s'il vous demande si vous voulez réparer quoi que ce soit) et si le message du journal des événements est pour une application , puis trouvez-le par le nom dans le message du journal des événements, ici par il par le CLSID "{148B...} "(c'est juste un CLSID aléatoire que j'ai collé-probablement il correspondra à votre 000209FF... ci-dessus), et sélectionnez Plus d'actions... Propriétés, à L'onglet Sécurité.

Ici, vous pouvez sélectionner [X] Personnaliser, puis Modifier, pour ajouter l'autorisation au compte d'utilisateur approprié pour activer et accéder à L'application ou à la classe DCOM requise.

C'est juste une supposition, mais essayez-le, ou quelque chose dans ce sens (c'est-à-dire accorder l'accès au CLSID via DCOMCNFG).

11
répondu Jim Flood 2010-08-25 15:06:46

J'ai eu du mal à comprendre cela en utilisant la réponse acceptée, car l'enregistrementMicrosoft Word 97 - 2003 document n'était pas répertorié parmi les éléments de configuration DCOM. J'ai trouvé la solution dans ce 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, en fonction de votre fonctionnement système.

Sur les systèmes d'exploitation x64 de Windows XP à Windows Server 2008, le Version 64 bits de DCOMCNFG.EXE ne configure pas correctement 32 bits Applications DCOM pour l'activation à distance. Ce comportement provoque les composants qui sont destinés à être activés à distance au lieu d'être activé localement. Ce comportement ne se produit pas dans Windows 7 et Windows Server 2008 R2 et versions supérieures.

Réf.: http://msdn.microsoft.com/en-us/library/windows/desktop/ms678426 (v=vs. 85).aspx

Et a également suggéré d'utiliser la commande de ligne de commande suivante (au lieu de DCOMCNFG) comme correctif efficace:

mmc comexp.msc /32

Qui force le chargement du gestionnaire de configuration DCOM 32 bits au lieu du gestionnaire 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 aussi un certain nombre d'autres solutions possibles.

Pour plus d'informations à ce sujet, vous pouvez également lire ce post.

4
répondu Darkseal 2017-05-02 11:34:48

Si vous ne trouvez pas L'Application Microsoft Word dans DCOM

Sur le système 64 bits avec Office 32 bits, essayez ceci:

  1. élément de liste
  2. Début
  3. Exécuter
  4. mmc 32
  5. Fichier
  6. Ajouter Supprimer composant logiciel enfichable
  7. Services De Composants
  8. Ajouter
  9. OK
  10. Racine De La Console
  11. Services De Composants
  12. Ordinateurs
  13. Mon Ordinateur
  14. Configuration DCOM

Après cela

  1. Trouver "Document Microsoft Word 97-2003" (Si il est manquant vérifier si votre mot est également 64 bits (si votre Windows est))
  2. clic Droit -> Propriétés
  3. allez dans L'onglet Sécurité et modifiez les boutons radio "personnaliser" afin que IIS_IUSRS pourrait avoir des droits de lancement et d'accès
  4. allez dans L'onglet Identité et choisissez" l'utilisateur interactif " appliquer les modifications et essayez de nouveau
  5. Si tout cela échoue, allez aussi à l'onglet "Général" et dans " authentification Niveau déroulant" choisissez "Aucune".
1
répondu çağrı Gündüz 2016-04-18 16:19:14