Pregunta

En un ASP.NET MVC 5 Webrole i`m usando la base de datos MAXMIND GEO IP, cuya API usa una cadena como esta:

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

Necesita un camino físico completo, un camino relativo no funciona. La pregunta es: implementar el Webrole en la nube, ¿cómo puedo recuperar la base de datos?

Ingreso a través de la conexión remota en la instancia, puedo ver que el archivo está ahí y la ruta es:

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

Pero esto no funciona y tengo una excepción que no pudo encontrar el archivo E: \ SitiosRoot \ 0 \ contenidos \ db.mmdb '.

¿Cómo puedo hacer?¿Debo usar un blob? La base de datos debe ser accesible rápido ya que podría llamarse cientos de millones de veces al día, no sé si la BLOB puede soportar esta cantidad de conexiones simultáneas, por lo que prefiero tenerla en la instancia de VM. Gracias

¿Fue útil?

Solución

El uso de un DB basado en archivos en un Webrole de NubeService es una idea realmente mala: cada vez que despliega el Webole, el DB se sobrescribirá.No hay una forma fácil de garantizar la concurrencia.Dicho esto, sería mejor usar Azure SQL o MySQL (o cualquier otra base de datos que no esté sujeta a ser sobrescrito cada vez que impliquen un nuevo código. La BLOB está bien para el almacenamiento de archivos, pero no DBS dinámico y las limitaciones de tamaño lo hará enproblemas también.

Para acceder a los archivos en la carpeta de contenido, consulte este So Post .

Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Contents");

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top