Pourquoi l'accès au chemin d'accès refusé?
J'ai un problème lorsque j'essaie de supprimer mon fichier mais j'obtiens une exception.
if (result == "Success")
{
if (FileUpload.HasFile)
{
try
{
File.Delete(Request.PhysicalApplicationPath + app_settings.login_images + txtUploadStatus.Text);
string filename = Path.GetFileName(btnFileUpload.FileName);
btnFileUpload.SaveAs(Request.PhysicalApplicationPath + app_settings.login_images + filename);
}
catch (Exception ex)
{
Message(ex.ToString());
}
}
}
Aussi je tiens à noter que le dossier que je suis en train de supprimer à partir de a le contrôle complet de services de réseau.
Le plein de message d'exception est:
Système.UnauthorizedAccessException: le chemin d'Accès "C:\Users\gowdyn\Documents\Visual Studio 2008\Projects\hybrid\hybrid\temp_loginimages\enviromental.jpg" est refusé. au Système.IO.__Erreur.WinIOError(Int32 errorCode, String maybeFullPath) au Système.IO.Fichier.Supprimer(String path) à l'hybride.User_Controls.Imgloader_Add_Edit_Tbl.btnUpdate_Click(Object sender, EventArgs e) dans C:\Users\gowdyn\Documents\Visual Studio 2008\Projects\hybride\hybride\User_Controls\Imgloader_Add_Edit_Tbl.ascx.cs:ligne 242
Des idées?
- Ce n'est pas clair à propos de l'exception? Le compte que l'application est en cours d'exécution en vertu de ne pas avoir les privilèges d'accès du fichier/dossier.
- Je comprends ce que l'exception est en train de dire. Le problème est que cette fonctionnalité est utilisée par certains utilisateurs qui ont besoin de modifier des images en utilisant le système. C'est en partie remplacer les images par la suppression de l'ancienne image et enregistrement d'une nouvelle image.
- Vérifier vos autorisations d'accès au dossier. donner les permissions adéquates sur le dossier à l'aide de l'onglet sécurité des propriétés de la fenêtre
- L'exception n'est pas instructif à tous. Elle ne vous dit pas: A. Quels principal est d'essayer d'accéder à la ressource B. de Quelles autorisations faut-il le. Pour le savoir, il nécessite l'installation de Windows SysInternals et de surveillance de la voie d'accès.
Vous devez vous connecter pour publier un commentaire.
J'ai aussi eu le problème, donc moi trébuchant sur ce post. J'ai ajouté la ligne suivante de code avant et après un Copier /Supprimer.
Supprimer
Copie
Temporary
, et cela semblait fonctionner pour moi aussi.Selon Fichier.Supprimer La Méthode...
Un
UnauthorizedAccessException
l'une des 4 choses:Path is a directory.
merci pour cette astuce 🙂 Il m'a aidé.C'est un vieux problème, mais j'ai couru dans la recherche. S'avère que j'ai été absent le nom réel du fichier composant le chemin de sauvegarde pour enregistrer sous...
Lorsqu'un utilisateur tente de se connecter à votre site Web, IIS attribue la connexion à la Iuser_nom_ordinateur compte, où Nomordinateur est le nom du serveur sur lequel IIS est en cours d'exécution. Par défaut, le Iuser_nom_ordinateur compte est membre du groupe Invités. Ce groupe a des restrictions de sécurité. Essayez de grand accès à Iuser_nom_ordinateur à ce dossier
Ici est très bien décrite sur la réponse de la sécurité IIS
Espère que cette aide
J'ai obtenu l'erreur parce que je ne savais pas que la destination doit être un fichier. J'avais un dossier en tant que second paramètre (qui travaille en cmd). et j'ai eu
Unhandled Exception: System.UnauthorizedAccessException: Access to the path is denied.
parce que le C#File.Move
veut un fichier, pas seulement pour le premier paramètre, mais pour la deuxième, et ainsi si vous mettez un répertoire en tant que second paramètre, c'est d'essayer d'écrire un fichier commec:\crp
lorsque vous avez un répertoire appeléc:\crp
.ce serait incorrect
File.Move(args[0],"c:\\crp");
Donc, ce serait corriger
File.Move(args[0],"c:\\crp\\a.a");
Il en va de même pour
File.Copy
Clic droit sur Visual studio et cliquez sur Exécuter en tant qu'Administrateur
Si c'est un site web IIS qui est d'avoir le problème, vérifiez l'Identité de la propriété des paramètres avancés pour le pool d'applications que le site ou l'application utilise. Vous pouvez trouver qu'il est défini à ApplicationPoolIdentity, et dans ce cas, alors c'est l'utilisateur qui aura accès au chemin d'accès.
Ou vous pouvez aller de style ancien et tout simplement de définir l'Identité de Service Réseau, et de donner à l'utilisateur du Service Réseau l'accès au chemin d'accès.
Vous avez besoin de modifier les droits du dossier que vous essayez de supprimer à partir de/sauvegarder. Cliquez-droit sur le dossier contenant et utilisation de l'onglet Sécurité pour permettre modifier droits pour l'utilisateur de votre application s'exécute sous.
J'ai frappé de la même chose. Vérifiez que le fichier n'est PAS CACHÉ.
J'ai eu cette erreur et résolu dans un instant. Ne sais pas pourquoi, tous mes dossiers sont en lecture seule,j'ai annulé la lecture et de l'appliquer. Cependant, il est toujours en lecture seule. J'ai donc déplacé le fichier dans le dossier racine, il fonctionne, si étrange.
Un UnauthorizedAccessException exception est levée lorsque le système d'exploitation refuse l'accès en raison d'une erreur d'e/S ou une erreur de sécurité.
Si vous tentez d'accéder à un fichier ou une clé de registre, assurez-vous qu'il est pas en lecture seule.
J'ai aussi été confronté à ce problème lors de ma fenêtre de service ont commencé à jeter l'exception
Donc comme une solution, j'ai vérifié le compte utilisateur associé à mon service, comme le montre ci-dessous la capture d'écran
Donc dans mon cas c'était SERVICE RÉSEAU
Et puis est allé à la propriétés du dossier pour vérifier si le compte d'utilisateur associé existe aussi sous leur permission onglet. Il manquait dans mon cas, et quand je l'ai ajouté et il a fixé mon problème.
Pour plus d'informations, veuillez consulter ci-dessous la capture d'écran
même problème pour moi aussi,
J'ai été pointant vers le dossier au lieu de fichier.
assurez-vous donc dans le chemin, donner le chemin+nom de fichier
J'ai eu le même problème sur un déplacé site web sur un serveur partagé. Résolu grâce à l'hébergeur du panneau (DotNetPanel) réglage de vrai "autoriser les autorisations d'écriture". Donc, si vous êtes dans un serveur partagé avant de revoir tout le code, la peine de prendre un coup d'oeil à la configuration du serveur et peut vous faire économiser beaucoup de temps.
Être conscient que si vous essayez de joindre un dossier partagé chemin d'accès à partir de votre code, vous n'avez pas seulement besoin de donner les autorisations nécessaires à la physicial dossier via l'onglet sécurité. Vous avez également besoin de "partager" le dossier correspondant à l'application de la piscine de l'utilisateur via l'Onglet Partager
Vérifiez que vos fichiers de propriétés. Si la lecture seule est cochée, décochez-la. C'était mon problème personnel avec le UnauthorizedAccessException.
J'ai été confronté à cette erreur, car
Parfois, quand je
Combine
la chemin avec Nom de Fichier etFileName = ""
Devenir
Path Directory
pas unfile
qui est un problème que mentionnés ci-dessusdonc vous devez vérifier pour
FileName
comme ceJ'ai eu l'erreur exacte lors de la suppression d'un fichier. C'est un Service Windows qui s'exécute sous un Compte de Service qui n'a pas pu supprimer un .document pdf à partir d'un Dossier Partagé, même si elle avait le Plein Contrôle du dossier.
Ce qui a fonctionné pour moi a été de naviguer vers l'onglet Sécurité du Dossier Partagé > Avancé > Partager > Ajouter.
J'ai ensuite ajouté le compte de service pour le groupe administrateurs, appliquer les modifications et le compte de service est en mesure d'effectuer toutes les opérations sur tous les fichiers dans ce dossier.
J'ai moi aussi connu le même problème lorsque vous essayez de le faire après le déploiement sur le serveur:
J'ai accordé la permission dans IIS pour d'autres groupes, y compris les administrateur et mon problème a résoudre.
J'ai trouvé que cette erreur peut se produire en MODE de CONCEPTION, par opposition à ? mode d'exécution...
Si vous faites quelque chose comme la création d'un membre de la classe qui nécessite l'accès à une .INI ou .HTM fichier (fichier de configuration, un fichier d'aide), vous pourriez ne PAS initialiser le point dans la déclaration, mais l'initialiser plus tard dans FORM_Load (), etc...
Lorsque vous effectuez l'initialisation... Utiliser un garde SI la déclaration:
Cela vous permettra de garder MSVS Concepteur d'essayer de créer un fichier INI ou fichier HTM lorsque vous êtes en mode création.
J'ai eu cette erreur est renvoyée lorsque j'ai essayé de renommer un dossier très rapidement après qu'il ait été déplacé ou a créé.
Un simple
System.Threading.Thread.Sleep(500);
résolu:Dans mon cas particulier, j'ai été à plusieurs reprises la création et la suppression de 10 000 dossiers. Il me semble que le problème était que, bien que la méthode
Directory.Delete(path, true)
est de retour, le sous-fifre OS mécanisme peut encore supprimer les fichiers à partir du disque. Et quand je suis en train de créer de nouveaux dossiers immédiatement après la suppression des anciens, certains d'entre eux sont enfermés parce qu'ils ne sont pas complètement supprimés encore. Et je suis du Système.UnauthorizedAccessException: "le chemin d'Accès est refusé".À l'aide de
Thread.Sleep(5000)
aprèsDirectory.Delete(path, true)
résout ce problème. Je suis absolument d'accord que ce n'est pas sûr, et je n'encourage pas à quiconque de l'utiliser. J'aimerais ici une meilleure approche pour résoudre ce problème afin d'améliorer ma réponse. Maintenant, je suis juste de donner une idée de la raison de cette exception peut se produire.Premier viens de vérifier le chemin d'accès si le deux-points(:) caractère est absent ou n'est pas après la lettre de lecteur. Si le côlon n'est pas absent, alors vous pouvez vérifier si l'accès en écriture/de l'autorisation est accordée pour ce chemin.
J'ai eu le même problème et je ne manquait que le côlon, l'autorisation et tout le reste était très bien.
fera du bon travail, mais,
vous donnera accès déni d'erreur.
J'ai essayé d'utiliser le Système.IO.Fichier.OpenWrite(chemin de)
et il ne fonctionne pas parce que je n'étais que de passage OpenWrite() un chemin d'accès à un répertoire, mais il a besoin d'un chemin tout le chemin vers le fichier que vous souhaitez écrire. Si un chemin d'accès complet, y compris le nom de fichier.extension à la fin doit être passé dans OpenWrite pour éviter UnauthorizedAccessException
Pour ceux qui essaient de faire un UWP (Universal Windows) demande, les autorisations de fichier sont beaucoup plus restreinte, et, en général, est de refuser par défaut. Il a également remplace le système des autorisations de l'utilisateur. Vous fondamentalement seulement d'avoir accès à des fichiers dans les deux
Vous pouvez en lire plus ici pour plus de détails => https://docs.microsoft.com/en-us/windows/uwp/files/file-access-permissions
Si vous utilisez BitDefender il y a de bonnes chances de son Coffre-fort de Fichiers fonctionnalité bloqué votre opération. C'est une forme de Ransomware de protection fourni avec certains de ses autres versions plus évoluées.
Assurez-vous de donner à votre demande d'accès à BitDefender et essayez à nouveau.
Un peu plus de détails peuvent être trouvés dans cette page de support de BitDefender.