2009-02-19 8 views
0

J'ai un problème qui n'a pas beaucoup de sens pour moi. J'ai une application ASP.NET qui s'exécute parfaitement en mode débogage, mais qui génère des erreurs Access Denied lors de l'exécution normale. J'ai donné le compte ASPNET et le compte l'application emprunte les droits Contrôle total sur les fichiers que la webapp appelle (en utilisant l'objet Process).Pourquoi suis-je seulement autorisé à accéder à ce fichier zip en mode débogage?

J'ai déterminé que les fichiers lançant l'erreur sont dans un fichier zip et que le processus que je cours ne les cherchera nulle part mais le fichier zip. Mais il semble que jusqu'à ce que je décompresse le fichier zip, je ne peux pas définir des autorisations sur son contenu. Est-ce que cela a du sens pour quelqu'un d'autre? Et quelqu'un connaît-il une solution?

Répondre

1

Définissez les autorisations pour CREATOR_OWNER sur le dossier vers lequel il décompresse.

+0

Je ne suis pas sûr de vous suivre .. Si je décompresse le zip, le processus continue d'appeler la version compressée. Si je supprime le fichier zip et ne conserve que les fichiers décompressés, le code ne s'exécute pas. – garann

+0

La raison pour laquelle il ne peut pas lire ses propres fichiers est que les autorisations ne sont pas définies correctement pour les fichiers nouvellement créés. Lorsque de nouveaux fichiers sont créés, ils reçoivent la LCA CREATOR_OWNER en tant qu'ACL. – Joshua

+0

Ok, j'ai essayé de donner le contrôle total de CREATOR_OWNER sur les fichiers décompressés, puis de définir le compte que j'utilise pour y accéder en tant que propriétaire. Il ne trouve toujours pas les fichiers décompressés. Est-ce que je vous ai bien compris? – garann

0

Quelle bibliothèque utilisez-vous pour accéder au fichier zip? Peut-être que vous ne pouvez pas ouvrir une seule archive zip deux fois lorsque des threads différents essaient d'extraire un fichier de l'archive en même temps?

+0

Je n'utilise pas de bibliothèque pour accéder directement au fichier zip - il est accessible par un exe que j'appelle en utilisant l'objet Process dans .NET. Il ne semble pas avoir de problèmes avec les threads en conflit lors de l'exécution dans Debug, ce qui explique pourquoi je pense que c'est un problème d'autorisations. – garann

0

Oh shoot, "Accès refusé", pas "Autorisation refusée". Celui-ci me rattrape toujours. "Accès refusé" est lorsque vous ne pouvez pas ouvrir le fichier même si vous avez des autorisations, généralement parce que quelqu'un d'autre l'a déjà ouvert.

+0

Il semble étrange que le problème soit avec un autre processus utilisant le fichier. Je suis capable de le supprimer et de le déplacer sans problème, et le même problème ne se produirait-il pas en mode debug si c'était le cas? – garann

+0

Désolé, mais je suis maintenant perplexe aussi. – Joshua

+0

Ok, j'apprécie que vous preniez une photo! – garann

Questions connexes