2010-07-16 4 views
1

J'ai une application ASP.NET s'exécutant sur le serveur Apache avec mod_mono. Si j'ai un dossier appelé "temp" situé dans le répertoire du site racine et exécutez le code suivantEnregistrement de fichiers dans le répertoire du site Web racine dans Apache

System.IO.TextWriter tw = new System.IO.StreamWriter("temp/test.txt"); 
tw.WriteLine(DateTime.Now); 
tw.Close(); 

enregistre test.txt dans C: \ Program Files \ Mono-2.6.4 \ bin \ temp sur le serveur. Si j'ajouter une barre oblique au nom du répertoire comme celui-ci:

System.IO.TextWriter tw = new System.IO.StreamWriter("/temp/test.txt"); 

Il enregistre dans C:/temp. Les deux ne font pas ce que je veux. Comment puis-je obtenir le code pour enregistrer le fichier dans le dossier temporaire dans le répertoire racine de mon site Web?

Comment puis-je obtenir le code pour enregistrer le fichier dans le dossier temporaire dans le répertoire racine de mon site Web? Est-ce un problème de mod_mono ou quelque chose à voir avec Apache?

J'ai essayé d'ajouter cette ligne à HTTPD.conf

Alias /temp "C:/Path_to_root_folder/temp" 

sans chance. Je ne devrais pas avoir à utiliser un alias si le dossier temporaire se trouve dans le répertoire racine, n'est-ce pas?

Dans mon environnement de développement qui utilise XSP comme serveur Web, tout fonctionne comme prévu. C'est seulement un problème lors de l'exécution sur Apache.

Répondre

2

Essayez:

string filename = Server.MapPath("~/temp/test.txt"); 
using (TextWriter tw = new StreamWriter(filename)) 
{ 

} 
+0

Cela fonctionne grâce! – Arizona1911

Questions connexes