Comme File.ReadAllText indique au sujet UnauthorizedAccessException, il pourrait être causé par l'une des conditions suivantes:
chemin
- spécifié un fichier qui est en lecture seule.
-ou-
- Cette opération est pris en charge sur la plate-forme actuelle.
-ou-
chemin
- spécifié un répertoire.
-ou-
- L'appelant n'a pas l'autorisation requise.
Vous pouvez tirer parti de la console Kudu et utiliser Attrib commande pour vérifier les attributs de vos fichiers ou répertoires. , Vous pouvez également essayer d'utiliser la commande TYPE pour afficher le contenu de votre fichier ou cliquez sur le bouton Modifier de la table de la liste des fichiers comme suit:
Aussi, je créé une nouvelle application Web et de déployer mon MVC application pour afficher les fichiers sous le dossier App_Data
, il pourrait fonctionner comme prévu, vous pouvez vous référer à it.
MISE À JOUR:
//method for getting files
public List<DownLoadFileInformation> GetFiles()
{
List<DownLoadFileInformation> lstFiles = new List<DownLoadFileInformation>();
DirectoryInfo dirInfo = new DirectoryInfo(HostingEnvironment.MapPath("~/App_Data"));
int i = 0;
foreach (var item in dirInfo.GetFiles())
{
lstFiles.Add(new DownLoadFileInformation()
{
FileId = i + 1,
FileName = item.Name,
FilePath = dirInfo.FullName + @"\" + item.Name
});
i = i + 1;
}
return lstFiles;
}
//action for downloading a file
public ActionResult Download(string FileID)
{
int CurrentFileID = Convert.ToInt32(FileID);
var filesCol = obj.GetFiles();
string fullFilePath = (from fls in filesCol
where fls.FileId == CurrentFileID
select fls.FilePath).First();
string contentType = MimeMapping.GetMimeMapping(fullFilePath);
return File(fullFilePath, contentType, new FileInfo(fullFilePath).Name);
}
MAJ2:
public ActionResult ViewOnline(string FileID)
{
int CurrentFileID = Convert.ToInt32(FileID);
var filesCol = obj.GetFiles();
string fullFilePath = (from fls in filesCol
where fls.FileId == CurrentFileID
select fls.FilePath).First();
string text = System.IO.File.ReadAllText(fullFilePath);
return Content(text);
}
Qu'est-ce que la fin MapPath chemin() jusqu'à être? Vous avez un accès en écriture complète à 'd: \ home \ site \ wwwroot'. (Remarque: tant que vous ne supprimez pas votre application Web, le stockage sous 'site' est durable, tout comme Azure Storage). –
Le chemin de la carte me donne l'emplacement correct (au moins en regardant Kudu), mais il dit un accès invalide –
Pouvez-vous s'il vous plaît modifier votre question avec plus de détails, y compris l'erreur complète, et quel appel génère l'erreur? (Je suppose 'ReadAllText() 'mais je ne sais pas à coup sûr). –