ASP.NET MVC2: Onde posso armazenar um arquivo para poder acessá -lo na minha caixa de dev e na produção?

StackOverflow https://stackoverflow.com/questions/2390109

Pergunta

Preciso armazenar um arquivo, de modo que meu aplicativo ASP.NET MVC possa acessar o arquivo, tanto quando eu executar o site no Visual Studio e quando o servidor de produção está realmente em execução. Eu não acho que posso fazer um caminho relativo na minha caixa de dev, porque o caminho de execução é algo na pasta System32. Não sei se o mesmo é verdadeiro no servidor, mas de qualquer maneira, um caminho absoluto não é uma opção.

Existe uma maneira de me referir a esse arquivo no código, que funcionará para minha caixa de desenvolvimento e meu servidor de produção?

Foi útil?

Solução

Se você pode armazenar o arquivo na hierarquia do aplicativo, pode fazer isso:

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

Como alternativa, você pode obter o caminho da montagem atualmente em execução como assim:

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

E construa seu caminho relativo a partir disso.

Outras dicas

Experimente uma subpasta do:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top