8
votes

Écrire des données sur App_Data

Je veux écrire un fichier .xml à l'aide du code suivant dans l'app_data / messages. Pourquoi provoque-t-il une erreur?

Code H3>
 Stream writer  = new FileStream("..'\'App_Data'\'posts'\'" + new Guid(post_ID.ToString()).ToString() + ".xml", FileMode.Create);


1 commentaires

Voulez-vous s'il vous plaît écrivez l'erreur que vous êtes confronté


3 Réponses :


21
votes

Veuillez poster l'exception que vous obtenez; Non seulement "cela ne fonctionne pas" - cela peut être toutes sortes de problèmes. Voici quelques éléments à vérifier:

Vérifiez si le processus ASP.NET a accès à ce répertoire à ce répertoire.

Aussi, on dirait que vous échappez aux backspaces dans le chemin qui ne va pas. Et lorsque vous travaillez avec ASP.NET, vos chemins doivent être relatifs au répertoire racine de l'application. Essayez ceci: xxx

Enfin, assurez-vous que le répertoire des messages existe - ou la création de fichier échouera.


3 commentaires

Comment vérifier l'ASP.NET a un accès en écriture dans ce répertoire?


En outre, il dit que je n'ai pas de définition pour Mappath et donc le mappath est souligné


Tout d'abord, vous pouvez vérifier si l'exception que vous obtenez est une idée non autorisée - dans ce cas, c'est un problème d'autorisations. L'exception que vous obtenez devrait vraiment être postée avec votre question. S'il s'agit d'un problème d'autorisations, utilisez l'explorateur Windows pour accorder des droits d'accès en lecture / écriture sur le groupe IIS_WPG pour le dossier App_Data.



8
votes

Retirez les citations simples étrangères et échappez-vous correctement à vos backslashes correctement.

ou même mieux, utilisez serveur.mappath (disponible dans les classes de base de la page et de l'usercontrol et le httpcontext entre autres). < / p> xxx

hors de curiosité, quel est le type de post_id? Pourquoi la convertissez-vous en une chaîne, puis dans un guid, puis retournez à une chaîne?


0 commentaires

0
votes

ci-dessus les réponses sont bonnes, mais elles dépendent de System.Web Assembly.

Si vous créez une méthode de création de fichier dans une bibliothèque, serveur.mappath ne sera pas disponible là-bas.

Ce cas vous pouvez utiliser même un autre universel dire à écrire les données du dossier App_Data .

Nous utilisons app_data dossier car un pirate informatique ne peut pas accéder aux fichiers du dossier App_Data avec les URL HTTP / HTTPS avec HTTP / HTTPS (par exemple, http://yourwebsite.com/app_data/test.xml < Pré> xxx


0 commentaires