J'ai développé un programme de console en C # .NET, qui utilise Excel Interop. Le programme fonctionne tout simplement bien sur ma machine de développement et dans Windows Server 2008, si je l'exécute à partir de la ligne de commande.
Lorsque j'essaie de planifier une tâche pour l'exécuter quotidiennement, j'ai eu cette erreur d'interopération agaçante: P>
02/11/2011 00:30:05,000 [1] FATAL My.Program [(null)] - Unable to Microsoft Office Excel open file 'E:\excel.xls' by one of several reasons: ⢠The file name or path does not exist. ⢠The file is being used by another program. ⢠The workbook you are trying to save has the same name as the currently opened book. System.Runtime.InteropServices.COMException (0x800A03EC): Unable to access the Microsoft Office Excel file 'E:\excel.xls' by one of several reasons: ⢠The file name or path does not exist. ⢠The file is being used by another program. ⢠The workbook you are trying to save has the same name as the currently opened book. in Microsoft.Office.Interop.Excel.Workbooks.Open (String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, IgnoreReadOnlyRecommended Object, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
6 Réponses :
Les choses peuvent être un peu bizarres lorsque vous faites une automatisation de bureau à partir d'une tâche planifiée, je vous suggère donc d'essayer un compte d'utilisateur différent. P>
Si cela fonctionne lorsque vous êtes connecté, je vous suggérerais de configurer le planificateur de tâche pour l'exécuter sous votre compte. Si cela fonctionne toujours, créez un nouveau compte avec le même type d'autorisations que votre compte et faites-la exécuter sous ce compte. P>
Sinon, essayez de vous connecter en tant que compte administrateur et assurez-vous que l'application s'exécute lorsqu'elle est connectée en tant qu'administrateur. Par exemple, il existe peut-être un peu de bureau qui est configuré lors de la première connexion interactive de l'utilisateur ou similaire. P>
Comme je l'ai dit, j'ai déjà configuré la tâche de planification pour exécuter en tant qu'administrateur
@Muek: Ce n'est pas une réponse à ma réponse, à moins que l'administrateur ne soit le compte que vous vous connectez normalement? Ma réponse n'est pas tellement sur les autorisations que si tout est configuré de la même manière sous les deux comptes.
Le compte que je cours à l'aide de la console ou du calendrier est le même
@Muek: Ok, alors je ne sais pas ce que la cause pourrait avoir peur.
Le fichier 'E: \ Excel.xls' existe p> blockQuote>
Ce n'est pas le cas. Les lettres de lecteur mappées comme E: sont par utilisateur. Le lecteur n'est valable que sous votre compte d'utilisateur, la tâche planifiée est probablement en cours d'exécution à l'aide d'un autre compte. Au lieu de bricoler avec des comptes, la meilleure chose à faire est d'utiliser un nom universel. Comme
\\ serveur \ Share \ Excel.xls code>, c'est valable pour tout compte. Demandez plus de questions à ce sujet sur Serverfault.com P>
Le fichier existe. E: Le lecteur n'est pas un lecteur mappé, c'est un vrai
Vérifiez cela. On dirait que vous devez créer un dossier pour que cette chose fonctionne bien. P>
C: \ Windows \ System32 \ Config \ SystemProfile \ Desktop P>
pris de cet article ici P>
Excellent! Cela a résolu mon problème immédiatement. Je planifie une application C #.
Merci. J'avais le même problème.
Cela a résolu mon problème avec la case «Exécuter avec les privilèges les plus élevés» dans les propriétés de la tâche planifiée.
Travaillé pour moi aussi. Pour référence, ma configuration est la suivante: Windows 7, Excel 2010 et 2013 installée et tâche planifiée avec "Exécuter avec les privilèges les plus élevés", ainsi que configurer pour: "Windows 7, Windows Server 2008 R2".
Je me battais pour que cela fonctionne. J'étais surtout sur Google, j'ai pensé que j'avais résolu mon problème avec l'aide d'un fil qui déposait une liste déroulante lors de la configuration de la tâche planifiée qui vous permettait de sélectionner XP comme option "Configurer". L'option XP est uniquement disponible lors de la création de la tâche depuis le début. Cela a fonctionné bien tant que le propriétaire de la tâche planifiée était effectivement connecté à la machine. P>
J'ai enfin pu le corriger dans la configuration DCOM en ajustant l'identité et le codage dur d'un utilisateur au panneau. p>
En courte, assurez-vous de créer ces dossiers avec les droits appropriés pour le profil utilisé dans le planificateur de tâches et qui n'est pas réadiennement: p>
C: \ Windows \ System32 \ Config \ SystemProfile \ Desktop C: \ Windows \ SYSWOW64 \ CONFIG \ SystemProfile \ Desktop P>
et vérifier ceci: p>
Dans le menu Démarrer, cliquez sur Exécuter et tapez DCOMCNFG.EXE. Dans les services de composants, cliquez sur la racine de la console, développez les services des composants, développez des ordinateurs, développez mon ordinateur, développez DComconfig. Recherche pour Microsoft Word 14.0 Object Library. Clique dessus. Faites un clic droit et sélectionnez Propriétés. Sur l'onglet Sécurité, sélectionnez Personnaliser la section "Lancement et activation". Cliquez sur Modifier et ajoutez une identité du pool d'applications sous lequel votre application est en cours d'exécution. Répétez l'étape ci-dessus pour "autorisation d'accès" p>
Créer un répertoire "Desktop" sous: P>
"C: \ Windows \ System32 \ Config \ SystemProfile \ Desktop" P>
et p>
"C: \ Windows \ SYSWOW64 \ CONFIG \ SystemProfile \ Desktop" pour les systèmes d'exploitation 64 bits P>
Accordez un accès complet à ce dossier pour que l'utilisateur exécute le service. Il devrait résoudre votre problème. P>
Avez-vous trouvé la solution ou travaillez-vous pour ce problème? J'ai le même problème, pouvez-vous s'il vous plaît poster votre solution? Merci!