Accès au chemin refusé lors du téléchargement du fichier Excel

Lorsque je télécharge un fichier Excel, je reçois cette erreur. Quelqu’un peut-il m’aider?

L’access au chemin ‘C: \ Data \ IronElements \ Upload \ AUMData \ 20101202 031815.xlsx’ est refusé. Description: une exception non gérée s’est produite lors de l’exécution de la demande Web en cours. Consultez la trace de la stack pour plus d’informations sur l’erreur et son origine dans le code.

Détails des exceptions: System.UnauthorizedAccessException: l’access au chemin ‘C: \ Data \ IronElements \ Upload \ AUMData \ 20101202 031815.xlsx’ est refusé.

ASP.NET n’est pas autorisé à accéder à la ressource demandée. Envisagez d’accorder des droits d’access à la ressource à l’identité de la demande ASP.NET. ASP.NET a une identité de processus de base (généralement {MACHINE} \ ASPNET sous IIS 5 ou Service réseau sous IIS 6) utilisée si l’application ne prend pas d’emprunt d’identité. Si l’application emprunte l’identité de l’utilisateur, l’identité sera l’utilisateur anonyme (généralement IUSR_MACHINENAME) ou l’utilisateur de la demande authentifiée.

Pour accorder à ASP.NET l’access à un fichier, cliquez dessus avec le bouton droit de la souris, choisissez “Propriétés” et sélectionnez l’onglet Sécurité. Cliquez sur “Ajouter” pour append l’utilisateur ou le groupe approprié. Mettez en surbrillance le compte ASP.NET et cochez les cases correspondant à l’access souhaité.

Erreur de source:

Une exception non gérée a été générée lors de l’exécution de la requête Web en cours. Les informations concernant l’origine et l’emplacement de l’exception peuvent être identifiées à l’aide de la trace de stack d’exceptions ci-dessous.

Mon code derrière le fichier a la syntaxe suivante

DateTime date = DateTime.Now; ssortingng FileName = Convert.ToSsortingng(date.ToSsortingng("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); ssortingng connectionSsortingng = WebConfigurationManager.ConnectionSsortingngs["SQLConnection"].ConnectionSsortingng; SqlConnection SqlConnect = new SqlConnection(connectionSsortingng); 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(ssortingng p) { p = ssortingng.Concat(p, "\\AUMSchema.xlsx"); if (!File.Exists(p)) { fileUpload.PostedFile.SaveAs("C:\\Data\\IronElements\\Upload\\AUMData\\Schema\\AUMSchema.xlsx"); } } 

Assurez-vous que le dossier C: \ Data \ IronElements \ Upload \ AUMData dispose d’une autorisation d’écriture NTFS pour l’utilisateur dans lequel le contexte IIS s’exécute. Assurez-vous également que les sous-dossiers de C: \ Data \ IronElements \ Upload héritent des permissions de son parent. Pour ce faire, cliquez sur le bouton Avancé de l’onglet Sécurité -> Modifier les permissions -> cocher Remplacer toutes les permissions d’object enfant par des permissions pouvant être héritées de cet object -> OK, puis cliquez sur OK.

Le compte sous lequel votre session Web est en cours d’exécution ne dispose pas des permissions pour écrire dans ce dossier. Une fois que vous avez atsortingbué au compte ASP.Net (ou à tout autre compte utilisé) les permissions requirejses, cela devrait fonctionner normalement.

Accédez au pool d’applications que vous utilisez pour cette application et remplacez son identité par «Service réseau». J’ai fait face au même problème et résolu de la même manière

Pour mieux cerner les problèmes d’autorisation de ce type, j’ai toujours créé un utilisateur disposant de faibles privilèges pour gérer nos sites Web. L’utilisateur porte le nom du site lui-même, il est donc évident de savoir à quoi il sert.

Ensuite, cet utilisateur ne reçoit que les permanentes sur les bons dossiers, dans votre cas, C: \ Data \ IronElements \ Upload \ AUMData. C’est également un bon moyen de limiter l’access à la firebase database: créez une connexion pour cet utilisateur spécifique en SQL avec un minimum de privilèges.