Cette question a été posée comme des millions de fois, mais j'ai essayé ces solutions et je n'arrive toujours pas à comprendre pourquoi cette erreur se produit:
L'accès au chemin "\ server1\Folder1\Folder2\Folder3\file1.dwg" est refusé.
Voici l'action qui renvoie l'erreur:
public ActionResult Download(string fileName)
{
fileName = fileName + ".dwg";
string path = Path.Combine(@"\\server1\Folder1\Folder2\Folder3\", fileName);
return File(path, "application/octet-stream", fileName);
}
J'ai essayé de donner des autorisations à "Folder3" pour plusieurs noms d'utilisateur, par exemple "SERVER1\SERVICE RÉSEAU" - Contrôle total.
L'application s'exécute sous Site Web par défaut. L'application s'exécute sous DefaultAppPool et DefaultAppPool a l'identité de "NetworkService".
Le code suivant donne l'identité "SERVICE RÉSEAU".
WindowsIdentity identity = HttpContext.Request.LogonUserIdentity;
L'application fonctionnait bien (même répertoire de téléchargement) sur mon propre ordinateur, mais après le déploiement, ce problème est apparu.
Le serveur exécute Windows 2008 R2 SP1 et IIS 7.5.
essaye ça:
"L'accès au chemin 'xxxxxx' est refusé."
Comme le dit l'erreur, vous devez attribuer des autorisations aux dossiers
IIS_IUSRS
(Controle total)Full Control
in allowRemarque: Si les choses ci-dessus ne fonctionnent pas, essayez de donner la même autorisation à NETWORK
, NETWORK SERVICE
Utilisateurs
Pour mon cas, je suis allé dans le dossier racine de mon projet, fait un clic droit dessus et ouvert la fenêtre des propriétés et décoché l'attribut Lecture seule. Après avoir cliqué sur OK, tout a commencé à fonctionner.
Si l'authentification anonyme est activée sur votre serveur, définissez les autorisations de lecture pour le compte IUSR. Pour autoriser l'accès aux identités du pool d'applications, définissez des autorisations de lecture pour le groupe IIS_USERS. Pour le chemin UNC, assurez-vous qu'il existe une autorisation appropriée pour votre dossier partagé (voir https://technet.Microsoft.com/en-us/library/cc726004 (v = ws.11) .aspx pour détails).