Comment utiliser Server.MapPath pour obtenir l'emplacement en dehors du dossier de site Web dans ASP.NET
Quand mon ASP.NET le site utilise des documents (par exemple, XML), j'ai l'habitude de charger le document comme suit:
Server.MapPath("~\Documents\MyDocument.xml")
Cependant, je voudrais déplacer le dossier "Documents" du site web dossier de sorte qu'il est maintenant un frère ou une sœur du site dossier. Cela permettra de faire l'entretien de documents beaucoup plus facile.
Cependant, la réécriture du document de charger le code comme suit:
Server.MapPath("../../Documents/MyDocument.xml")
résultats dans une plainte de ASP.NET qu'il ne peut pas quitter le haut répertoire'.
Donc, quelqu'un peut-il suggérer comment je peux relativement spécifier l'emplacement d'un dossier en dehors du site web dossier? Je ne veux vraiment pas à spécifier un chemin absolu pour l'évidente déploiement raisons.
Grâce
David
source d'informationauteur David
Vous devez vous connecter pour publier un commentaire.
Si vous savez où il est relatif à la racine de votre serveur web, vous pouvez utiliser
Server.MapPath
pour obtenir l'emplacement physique de la racine de votre serveur web, puis Chemin de classe'méthode pour obtenir votre chemin d'accès du document.Bruts décoché code quelque chose comme:
Désolé si j'ai eu la Syntaxe de mal, mais le
Path
classe devrait être ce que vous êtes après de jouer avec du vrai FS chemins plutôt que sur le web type de chemins.La raison de votre méthode a échoué, c'est que
Server.MapPath
prend un emplacement sur votre serveur web et celui que vous avez donné n'est pas valide, car il est "au-dessus" du haut de la racine du serveur hiérarchie.Domaine d'application.BaseDirectory retourne actuel de l'application web de l'assemblée chemin d'accès au répertoire.
Si vous avez besoin de résoudre le chemin dans les deux cas, absolue ou relative (même en dehors de l'application web dossier racine) utilisez ceci:
Si vous voulez spécifier l'Emplacement quelque part dans le disque dur , puis le son n'est pas facilement disponible sur le site web d'environnement. Si les fichiers sont plus petits en taille et en quantité, alors vous pouvez le garder à l'intérieur de répertoire et de point, puis à l'aide de ~/chemin jusqu'à répertoire.
Mais dans certains cas, nous avons utilisé pour faire de l'objet Request. Pour plus, visitez ce lien
http://msdn.microsoft.com/en-us/library/5d5940ad.aspx