Pergunta

Em um ASP.net MVC 5 WebRole estou usando o MaxMind Geo IP do Banco de dados cujo API usa uma cadeia de caracteres como esta:

  var reader = new DatabaseReader    (@"C:\Users\User\Source\Workspaces\myproject\Contents\db.mmdb");

Ele precisa de um caminho físico completo, um caminho relativo não funciona.A questão é:implantar o WebRole na nuvem, como posso recuperar o banco de dados?

Entrar através de conexão remota no exemplo, eu posso ver que o arquivo está lá e o caminho é:

var reader = new DatabaseReader(@"E:\sitesroot\0\Contents\db.mmdb");

Mas isso não funciona e eu tenho uma excepção não foi possível localizar arquivo 'E:\sitesroot\0\Contents\db.mmdb'.

Como posso fazer?Devo usar um BLOB?O banco de dados precisa ser rápido, acessível, uma vez que pode ser chamado de centenas de milhões de vezes por dia, eu não sei se o BLOB pode apoiar estes quantidade de conexões simultâneas, por isso, prefiro tê-lo na VM instância.Obrigado

Foi útil?

Solução

Utilizando um ficheiro de base de base de dados em um CloudService WebRole é realmente uma má idéia - cada vez que você implantar o WebRole, o DB serão sobrescritos.Não há nenhuma maneira fácil de garantir a concorrência.Que disse, seria melhor usar Azure Sql ou MySql (ou qualquer outro banco de dados não sujeito a ser substituído a cada vez que você implantar o novo código.O BLOB é OK para armazenamento de arquivos, mas não dinâmico DBs e a limitações de tamanho de trazer problemas bem.

Para aceder aos ficheiros na pasta de conteúdos, porém, ver isso ASSIM posto,.

Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Contents");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top