ASP.Net MVC2: где я могу хранить файл, чтобы иметь к нему доступ как на своем компьютере разработчика, так и в производстве? - PullRequest
2 голосов
/ 06 марта 2010

Мне нужно сохранить файл, чтобы мое приложение ASP.Net MVC могло получить к нему доступ, как при запуске веб-сайта в Visual Studio, так и при фактическом запуске рабочего сервера. Я не думаю, что я могу сделать относительный путь на моем устройстве dev, потому что путь выполнения находится в папке System32. Я не знаю, верно ли это на сервере, но в любом случае абсолютный путь не подходит.

Есть ли способ, которым я могу сослаться на этот файл в коде, который будет работать как для моей коробки разработчика, так и для моего производственного сервера?

Ответы [ 2 ]

3 голосов
/ 06 марта 2010

Если вы можете сохранить файл в иерархии вашего приложения, вы можете сделать это:

Server.MapPath("~/path/to/file")

В качестве альтернативы вы можете получить путь к текущей выполняемой сборке, например:

string codeBase = Assembly.GetExecutingAssembly().CodeBase;
UriBuilder uri = new UriBuilder(codeBase);
string path = Uri.UnescapeDataString(uri.Path);
return Path.GetDirectoryName(path);

И построите свой относительный путь из этого.

2 голосов
/ 06 марта 2010

Попробуйте подпапку из:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData))
...