Le chemin d'accès Refusé lors du téléchargement d'un fichier excel
Lors du téléchargement d'un fichier excel que je reçois cette erreur, quelqu'un peut-il m'aider?
Le chemin d'accès
'C:\Data\IronElements\Upload\AUMData\20101202
031815.xlsx " est refusé. Description: Une exception non gérée s'est produite au cours de
l'exécution de la web
demande. Veuillez consulter la trace de pile
pour plus d'informations sur l'erreur
et d'où il vient dans le code.Détails De L'Exception:
Système.UnauthorizedAccessException:
Le chemin d'accès
'C:\Data\IronElements\Upload\AUMData\20101202
031815.xlsx " est refusé.ASP.NET n'est pas autorisé à accéder à
la ressource demandée. Envisager
l'octroi de droits d'accès à la ressource
à l'ASP.NET identité de la demande.
ASP.NET a une identité de processus de base
(généralement, {MACHINE}\ASPNET sur 5 IIS
ou de Réseau de Service sur IIS 6) qui est
utilisée si l'application n'est pas
usurpation de l'identité. Si la demande est
usurpation de l'identité via , l'identité
sera l'utilisateur anonyme (généralement
IUSR_MACHINENAME) ou authentifié
demande de l'utilisateur.De subvention ASP.NET l'accès à un fichier
cliquez-droit sur le fichier dans l'Explorateur,
choisissez "Propriétés" et sélectionnez l'
Onglet sécurité. Cliquez sur "ajouter" pour Ajouter le
utilisateur ou le groupe approprié. Mettre en évidence
l'ASP.NET compte, et vérifiez le
les boîtes pour l'accès désiré.Source De L'Erreur:
Une exception non gérée s'est généré
au cours de l'exécution de la
demande web. Les informations concernant les
origine et l'emplacement de l'exception
peut être identifié à l'aide de l'exception
trace de la pile ci-dessous.
Mon fichier Code-behind, a la syntaxe suivante
DateTime date = DateTime.Now;
string FileName = Convert.ToString(date.ToString("yyyyMMdd hhmmss"));
Directory.CreateDirectory("C:\\Data\\IronElements\\Upload\\AUMData\\Schema");
doesFileExists("C:\\Data\\IronElements\\Upload\\AUMData\\Schema");
fileUpload.PostedFile.SaveAs("C:\\Data\\IronElements\\Upload\\AUMData\\" + FileName + ".xlsx");
System.Threading.Thread.Sleep(5000);
string connectionString = WebConfigurationManager.ConnectionStrings["SQLConnection"].ConnectionString;
SqlConnection SqlConnect = new SqlConnection(connectionString);
try
{
SqlConnect.Open();
SqlCommand cmdAssetUnderManagement = new SqlCommand("Exec_Insert_AUMAssetValue", SqlConnect);
cmdAssetUnderManagement.CommandType = CommandType.StoredProcedure;
cmdAssetUnderManagement.ExecuteNonQuery();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
SqlConnect.Close();
}
lblAUMTA.Visible = true;
lblAUMTA.Text = "File Upload Completed";
}
private void doesFileExists(string p)
{
p = string.Concat(p, "\\AUMSchema.xlsx");
if (!File.Exists(p))
{
fileUpload.PostedFile.SaveAs("C:\\Data\\IronElements\\Upload\\AUMData\\Schema\\AUMSchema.xlsx");
}
}
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que le dossier C:\Data\IronElements\Upload\AUMData a NTFS autorisation en écriture pour l'utilisateur, le contexte dans lequel IIS s'exécute. Aussi s'il vous plaît assurez-vous que les sous-dossiers de C:\Data\IronElements\Upload hérite des autorisations de son parent. Pour ce faire, cliquez sur le bouton Avancé de l'onglet sécurité -> Modifier les autorisations -> cocher Remplacer tous les enfants les autorisations de l'objet avec les autorisations pouvant être héritées de cet objet -> cliquez sur Ok
Le compte que votre session web est en cours d'exécution en vertu n'a pas l'autorisation d'écrire dans ce dossier. Une fois que vous donnez la ASP.Net compte (ou n'importe quel compte que vous utilisez), les autorisations requises, il doit fonctionner comme prévu.
aller à l'app-piscine que vous utilisez pour cette application et de modifier l'identité de il pour 'Service Réseau'. J'ai été confrontée au même problème et fixe de la même manière
Pour obtenir un meilleur traitement en matière d'autorisation de ce type de problèmes, je crée toujours un faible priv ed utilisateur de faire fonctionner nos sites web. L'utilisateur est nommé d'après le site lui-même, il est donc évident que c'est pour.
Alors que l'utilisateur n'obtient que des permissions sur les dossiers de droit, dans votre cas, C:\Data\IronElements\Upload\AUMData. C'est aussi un bon moyen de limiter DB access - créer un compte de connexion pour l'utilisateur dans SQL avec un minimum de privs.