Сохранение файлов в каталоге корневого сайта в Apache - PullRequest
1 голос
/ 16 июля 2010

У меня есть приложение ASP.NET, работающее на сервере Apache с mod_mono.Если у меня есть папка «temp», расположенная в корневом каталоге веб-сайта, и я запускаю следующий код

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

, она сохраняет файл test.txt в C: \ Program Files \ Mono-2.6.4 \ bin \ tempна сервере.Если я добавлю косую черту к имени каталога следующим образом:

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

Это сохранит его в C: / temp.Оба не делают то, что я хочу.

Как мне получить код для сохранения файла во временную папку внутри корневого каталога моего сайта?Это проблема mod_mono или что-то связанное с Apache?

Я безуспешно пытался добавить эту строку в httpd.conf

Alias /temp "C:/Path_to_root_folder/temp"

.Мне не нужно использовать псевдоним, если временная папка находится в корневом каталоге, правильно?

В моей среде разработки, в которой в качестве веб-сервера используется XSP, все работает как положено.Это проблема только при работе на Apache.

1 Ответ

2 голосов
/ 16 июля 2010

Попробуйте:

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

}
...